蜀漢延熙十六年秋,將軍姜維起兵二十萬,以廖化、張翼為左右先鋒,夏侯霸為參謀,張嶷負責糧草運輸,大軍從陽平關出發伐魏。姜維與夏侯霸商議說:“之前我們攻打雍州未能成功,現在如果再次出兵,敵人必定有所準備。你有什麼好的建議嗎?”夏侯霸回答說:“隴上的郡縣中,南安的錢糧最為豐富,如果我們能先攻取南安,就足以作為我們的根基。之前我們未能成功,主要是因為羌族的兵力沒有到位。現在我們可以先派人去隴右聯合羌族,然後從石營進兵,直接攻取南安。”姜維聽後大喜,說:“你的建議很好!”於是派遣郤正為使者,帶著金珠蜀錦去聯合羌族,成功結好了羌王迷當。迷當得了禮物後,便起兵五萬,以羌將俄何燒戈為先鋒,引兵前來南安。
魏國的左將軍郭淮聽到這個訊息後,立刻上報洛陽。司馬師問眾將:“誰敢去迎戰蜀兵?”輔國將軍徐質回答說:“我願意前往。”司馬師知道徐質英勇過人,心中大喜,便任命徐質為先鋒,以司馬昭為大都督,領兵前往隴西迎戰。兩軍在董亭相遇,列成陣勢。徐質手持開山大斧,出馬挑戰,蜀軍中廖化出陣迎戰。兩人交戰不久,廖化便敗退回陣。張翼縱馬挺槍而出,與徐質交戰數合,也敗退回陣。徐質驅兵掩殺,蜀兵大敗,退走了三十多里。司馬昭也收兵回營,各自紮寨。
姜維與夏侯霸商議說:“徐質非常勇猛,我們應該用什麼策略才能擒住他呢?”夏侯霸說:“我們可以明天詐敗,用埋伏的計策來勝他。”姜維說:“司馬昭是司馬懿的兒子,難道他不懂兵法嗎?如果看到地勢險要,他必定不會追擊。我觀察到魏兵多次截斷我們的糧道,現在我們可以用這個計策來誘敵深入,然後趁機斬殺徐質。”於是他們叫來廖化和張翼,分別佈置了任務,兩人領兵而去。同時,姜維又命令軍士在路上撒下鐵蒺藜,並在營寨外多排鹿角,做出長期堅守的態勢。
徐質連續幾天挑戰,但蜀兵就是不出戰。哨探來報司馬昭說:“蜀兵在鐵籠山後用木牛流馬搬運糧草,看起來是要打持久戰,只等羌兵前來策應。”司馬昭便召來徐質說:“以前我們能夠戰勝蜀軍,都是因為我們截斷了他們的糧道。現在蜀兵在鐵籠山後運糧,你今夜帶兵五千去截斷他們的糧道,蜀兵自然就會退走了。”徐質領命後,在初更時分帶著兵馬前往鐵籠山。果然看到蜀兵二百多人驅趕著一百多頭木牛流馬裝載著糧草而來。魏兵一聲吶喊衝殺過去,徐質當先攔住蜀兵去路。蜀兵紛紛丟下糧草逃跑,徐質分兵一半押送糧草回營,自己帶著另一半兵馬繼續追擊。追了不到十里路,前面突然出現車仗橫截去路。徐質命令軍士下馬拆開車仗時,只見兩邊突然火光沖天而起。徐質急忙勒馬往回逃跑,但在後面山僻窄狹的地方也有車仗截住去路併火光迸起。徐質等人只好冒煙突火縱馬衝出重圍。這時一聲炮響兩路蜀軍殺來左有廖化右有張翼大殺一陣魏兵大敗而逃。徐質奮力死戰才得以單身逃走但人困馬乏已經筋疲力盡。
正在徐質狼狽逃竄的時候前面又出現一支蜀軍攔住去路為首的正是姜維。徐質大驚失措被姜維一槍刺倒坐下馬跌下馬來被眾蜀軍亂刀砍死。徐質所分的一半押糧兵也被夏侯霸所擒全部投降了蜀軍。夏侯霸將魏兵的衣服甲冑和馬匹都讓蜀兵穿戴起來打著魏軍的旗號從小路徑直奔回魏寨。魏軍見是本部兵馬回來便開門放入但蜀兵一進寨中就四處殺起。司馬昭大驚失色慌忙上馬逃跑但前面廖化殺來擋住了去路。司馬昭無法前進急忙後退時姜維又引兵從小路殺到將其包圍在鐵籠山上。這座山只有一條路可走四面都是險峻難攀的峭壁山頂只有一眼泉水勉強夠百人飲用。此時司馬昭手下有六千兵馬被姜維絕其路口山上泉水不足人馬都乾渴難耐。司馬昭仰天長嘆道:“我恐怕要死在這裡了!”後來有人作詩感嘆道:“姜維妙算不尋常魏師受困鐵籠間;龐涓始入馬陵道項