天都有五批偵察兵出營或十里或十五里就回來了。鄧艾登高觀察之後慌忙回到營帳中對陳泰說:“姜維不在這裡他一定是去取董亭偷襲南安了。出營的偵察兵馬匹數量不多卻頻繁更換衣服和旗幟往返偵察馬匹都顯得疲憊不堪這說明他們的主將肯定沒有什麼本事。陳將軍您可以帶領一支軍隊去攻打他們營寨肯定能夠攻破。攻破了營寨之後就立即帶領軍隊去截斷姜維的後路。我則帶領一支軍隊先去救援南安直接佔領武城山。如果我們能夠先佔領這個山頭姜維就一定會去取上邽。上邽有一個山谷名叫段谷地勢狹窄山勢險峻非常適合埋伏兵力。等他們來爭奪武城山的時候我就先埋伏兩支軍隊在段谷等待他們一旦他們進入埋伏圈我們就可以打敗他們了。”
陳泰說:“我在隴西守了二三十年,從未像你這樣明察地理。你所說的,真是神算啊!你可以迅速出發,我會攻打這裡的營寨。”於是鄧艾率領軍隊連夜兼程前進,直接到達武城山,紮下營寨。蜀軍還未到達,他就命令兒子鄧忠和帳前校尉師纂各自率領五千兵馬,先去段谷埋伏,按照計劃行動。兩人接受命令後離去。鄧艾命令軍隊偃旗息鼓,等待蜀軍的到來。
姜維從董亭出發,望向南安方向前進,到達武城山前,對夏侯霸說:“南安附近有一座山,名叫武城山。如果我們能先佔領它,就可以控制南安的局勢。但我擔心鄧艾詭計多端,一定會提前防備。”正在他疑慮的時候,突然山上傳來一聲炮響,喊聲震天,鼓角齊鳴,旌旗林立,全都是魏軍。中央飄起一面黃旗,上面大書“鄧艾”兩個字。蜀軍大驚失色。山上的精兵從幾處殺下來,勢不可擋,蜀軍的前軍大敗。姜維急忙率領中軍去救援時,魏軍已經撤退。
姜維直接來到武城山下挑戰鄧艾,但山上的魏軍並不下來應戰。姜維命令士兵辱罵挑釁,直到晚上才準備撤軍。然而山上鼓角又齊鳴起來,卻又不見魏軍下山。姜維想要衝上山去殺敵,但山上的炮石非常密集,無法前進。他堅守到三更時分想要撤退時,山上的鼓角再次響起。當他移動軍隊下山紮營時,等到命令士兵搬運木石準備豎起營寨時,山上的鼓角又響了起來,魏軍突然殺到。蜀軍大亂自相踐踏退回了舊的營寨。
第二天姜維命令士兵運送糧草和車仗到武城山並排列好準備建立起營寨作為屯兵之地。然而當夜二更時分鄧艾命令五百人各執火把分兩路下山放火燒燬了蜀軍的車仗。兩軍混戰了一夜蜀軍的營寨又沒能建立起來。姜維再次引兵撤退並與夏侯霸商議說:“南安沒有攻下來我們不如先取上邽。上邽是南安的屯糧之地如果得到了上邽南安自然就危險了。”於是留下夏侯霸在武城山屯兵自己率領全部精兵猛將直接進攻上邽。
走了一夜即將天明時他們看到山勢險峻道路崎嶇於是問嚮導官這裡是什麼地方。嚮導官回答說:“這裡是段谷。”姜維大吃一驚說:“這個名字不吉利:‘段谷’就是‘斷谷’。如果有人斷絕了谷口我們該怎麼辦?”他正在猶豫不決時忽然前軍來報:“山後塵土飛揚一定有伏兵。”姜維急忙命令撤軍。師纂、鄧忠兩路軍隊從埋伏處殺出姜維邊戰邊退前面喊聲震天鄧艾引兵殺到三路夾攻蜀軍大敗。幸好夏侯霸引兵殺到魏兵才退去救了姜維。他們想要再次前往祁山但夏侯霸說:“祁山的營寨已經被陳泰打破鮑素陣亡全寨的人馬都撤回了漢中。”姜維不敢再去董亭急忙從偏僻的小路撤回。後面的鄧艾緊急追趕姜維命令各軍前進自己親自斷後。正在行進的時候忽然山中又有一支軍隊衝出原來是魏國的將領陳泰。魏兵一聲吶喊將姜維困在了核心。姜維人馬疲憊睏乏左衝右突無法突圍。蕩寇將軍張嶷聽到姜維被困的訊息率領數百騎兵殺入重圍。姜維趁機乘勢殺出但張嶷被魏兵亂箭射死。姜維得以逃出重圍回到漢中。他因為感激張嶷的忠勇和為國捐軀的精神上表請求賞賜他的子孫。
在這場戰