在蜀漢景耀五年的冬天十月,大將軍姜維派人連夜修復了棧道,整頓了軍糧和兵器,並在漢中的水路調撥了船隻。一切都已準備就緒,他上表給後主劉禪說:“臣多次出戰,雖然沒有取得大功,但已經挫傷了魏軍計程車氣。現在我們的軍隊已經養兵很久,如果不戰鬥就會變得懶惰,懶惰就會生病。況且現在軍士們都渴望效命,將領們都願意聽從命令。如果臣不能取勝,願意接受死罪。”然而,後主劉禪看了奏表後,猶豫不決。
這時,譙周站出來上奏說:“臣昨晚觀察天象,發現西蜀地區的將星暗淡無光。現在大將軍又想要出兵,這次行動非常不利。陛下應該下詔阻止他。”後主說:“我們先看看這次行動的結果如何。如果確實有失,再阻止他也不遲。”譙周再三苦苦勸諫,但後主沒有聽從,於是譙周只好回家嘆息不已,並推說自已生病,不再出門。
姜維在出兵前問廖化:“我現在要出兵,發誓要恢復中原,應該先攻打哪裡?”廖化回答說:“我們連年征戰,軍民不得安寧,再加上魏國有鄧艾這樣的足智多謀的將領,他可不是一般的人。將軍你強行要做難以完成的事情,這就是我之所以不敢專斷的原因。”姜維聽後勃然大怒說:“過去丞相諸葛亮六次出兵祁山,也是為了國家。現在我八次伐魏,難道是為了自已的私利嗎?現在我們應該先攻取洮陽。如果有誰敢違抗我的命令,一定斬首!”於是留下廖化守衛漢中,自已率領三十萬大軍,直奔洮陽而來。
早有蜀地的探子把訊息報入祁山寨中。當時鄧艾正在和司馬望談論兵法,聽到這個訊息後,立即派人去偵察。偵察兵回報說蜀軍全部從洮陽方向而來。司馬望說:“姜維詭計多端,莫非他故意虛張聲勢要攻打洮陽,實際上卻是要來攻打祁山嗎?”鄧艾說:“不,這次姜維確實是出兵洮陽。”司馬望問:“你怎麼知道?”鄧艾迴答說:“以前姜維多次攻打我們有糧食的地方,現在洮陽沒有糧食,他一定是料到我們只會防守祁山,不會防守洮陽,所以直接攻打洮陽。如果他得到這座城市,就可以在那裡屯積糧食和草料,連結羌人,為長期作戰做準備。”
司馬望說:“如果是這樣,我們該怎麼辦?”鄧艾說:“我們可以把這裡的兵力全部撤走,分成兩路去救援洮陽。在離洮陽二十五里的地方有一座小城叫侯河,是洮陽的咽喉要地。你帶領一支軍隊埋伏在洮陽城中,偃旗息鼓,大開四門,按照計劃行事。我帶領另一支軍隊埋伏在侯河附近,一定能夠大獲全勝。”兩人商量好計策後,各自依計行動,只留下偏將師纂守衛祁山寨。
姜維命令夏侯霸為前鋒部隊,率先帶領一支軍隊直奔洮陽而來。夏侯霸率軍前進到快要到達洮陽的時候,發現城頭上沒有一面旗幟豎立,而且四個城門都大開著。夏侯霸心中起疑,不敢貿然入城,回頭對眾將說:“這莫非是詐降嗎?”眾將回答說:“看樣子這座城是空的,只有一些小百姓在裡面。他們聽到大將軍的軍隊到了,都棄城逃跑了。”夏侯霸不相信,親自騎馬到城南去觀察情況。他看到城後有很多老百姓正在向西北方向逃跑。夏侯霸大喜過望地說:“果然是一座空城啊!”於是他率先衝入城中,其餘的人也跟著進去了。然而當他們剛剛走到甕城邊的時候,突然一聲炮響震耳欲聾,城頭上的戰鼓和號角齊鳴起來,旌旗林立、吊橋也被拽起來了。夏侯霸大驚失色地說:“我們中計了!”他慌忙想要撤退的時候已經來不及了——城頭上射下來的箭矢和投擲下來的石塊像雨點一樣密集地砸下來。可憐夏侯霸和他帶領的五百名士兵都死在了城下。後來有人寫詩感嘆說:“大膽姜維妙算長啊!誰知道鄧艾暗地裡提防著呢?可憐的夏侯霸投降了蜀漢卻在這裡頃刻間就喪命了!”
司馬望從城內殺出來蜀兵大敗而逃。隨後姜維率領接應的軍隊趕到並打退了司馬望的進攻並在城邊安營紮寨。姜維聽說夏侯霸被射死的訊息後非常傷心和嗟嘆不已。當天夜裡二更時分鄧艾從侯河城內秘密地帶領一支軍隊潛入蜀軍的營寨中——蜀兵大亂起來姜維無法制止住他們。此時城頭上戰鼓和號角聲震天響司馬望又率領軍隊從城內殺出來——兩下夾攻之下蜀兵大敗而逃。姜維左衝右突死戰得脫退到二十多里外的地方安營紮寨去了。蜀兵在兩次失敗之後軍心開始動搖起來。姜維對眾將說:“勝敗乃兵家常事現在我們雖然損失了一些兵力和將領但是並不足以讓我們感到憂慮。成敗的關鍵就在於接下來這一戰了!你們大家要始終堅定信心不要改變主意!如果有誰敢再說撤退的話我就立刻斬了他!”張翼建議說:“現在魏兵都集中在這裡祁山那邊一定很空虛。將軍你可以整頓兵力去和鄧艾交鋒攻打洮陽和侯河;我帶領一支軍隊去攻取祁山。只要我們能夠拿下祁山的九個營寨就可以驅兵直向長安進發了!這才是上策啊!”
姜維聽從了張翼的建議,命令他率領後軍直接攻取祁山,而自已則帶兵前往侯河挑戰鄧艾。兩軍對峙,姜維與鄧艾交鋒數十回合,不分勝負,各自收兵回營。第二天,姜維再次出兵挑戰,但鄧艾卻堅守不出。姜維命令士兵辱罵鄧艾,試圖激怒他出戰。然而,鄧艾卻冷靜地分析形勢,認為蜀軍連續挑戰必有詭計,很可能是分兵去襲擊祁山寨。他擔心祁山的守將師纂兵力不足,難以抵擋,於是決定親自前往救援。
鄧艾叫來兒子鄧忠,吩咐他用心把守此地,無論蜀軍如何挑戰都不要輕易出擊。鄧艾自已則率領三千精兵連夜趕往祁山救援。與此同時,姜維也正在營中策劃行動。他聽到鄧艾引兵夜戰的訊息後,並沒有輕舉妄動,而是判斷鄧艾是虛張聲勢,實際上是要去救援祁山寨。於是,他召來將領傅僉,命令他堅守營寨,不要輕敵。隨後,姜維親自率領三千兵馬前來增援張翼。
張翼正在攻打祁山時,由於守將師纂兵力不足,漸漸支援不住。就在即將攻破之際,鄧艾的援軍突然殺到,蜀軍大敗。張翼被隔在山後,斷了歸路。正在危急時刻,忽然聽到喊聲大震、鼓角喧天,原來是姜維率領的援軍趕到。張翼乘勢驅兵反擊,兩下夾攻之下鄧艾敗了一陣,急忙退回祁山寨中堅守不出。姜維命令士兵四面圍攻祁山寨。
然而此時在成都的後主劉禪卻聽信宦官黃皓的讒言、沉溺於酒色之中、不理朝政。有大臣劉琰的妻子胡氏因為入宮朝見皇后被留在宮中一個月後才出來,劉琰懷疑她與後主有私情,竟然將妻子綁起來讓軍士用鞋子抽打她的臉數十下,幾乎打死。後主聽說後大怒,命令有關部門議定劉琰的罪名並將其斬首。從此以後命令禁止命婦入朝參政。這一事件導致賢人逐漸退隱、小人得志進用。右將軍閻宇雖然沒有什麼功勞,但因為阿附黃皓而得到高官厚祿。他聽說姜維在祁山統兵作戰後竟然勸說黃皓向後主建議讓閻宇代替姜維的職位。後主聽從了這個建議,派遣使者帶著詔書召回姜維。
姜維正在祁山攻打敵寨時突然接到三道詔書命令他班師回朝。他只得遵命先讓洮陽的兵馬撤退然後與張翼一起徐徐而退。鄧艾在寨中聽到一夜鼓角喧天不知是何意等到天明時人報蜀兵已經全部撤退只留下了一座空寨。鄧艾懷疑有詐不敢追擊。
姜維直接回到漢中駐紮人馬然後親自帶著使命進入成都面見後主。然而後主卻一連十日不上朝讓姜維心中生疑。這一天他來到東華門遇見秘書郎郤正詢問他天子召自已班師的原因。郤正笑著告訴他這是黃皓為了讓閻宇立功而奏請朝廷發詔召回他的計策。而現在聽說鄧艾善於用兵所以這個計劃就被擱置了。姜維聽後大怒表示要殺死這個宦官豎子但郤正卻勸阻他說大將軍身負重任不能輕舉妄動否則反而不美。姜維聽從了他的建議沒有采取行動。
第二天後主與黃皓在後花園宴飲姜維帶著幾個人直接進入園中。早有人將這個訊息告訴了黃皓他急忙躲避到湖山之側。姜維來到亭下拜見了後主含淚奏報說:“臣在祁山困住了鄧艾但陛下卻連續降下三道詔書召回臣下不知聖意為何?”
後主劉禪默然不語。姜維又上奏說:“黃皓奸詐狡猾,專權誤國,就像靈帝時的十常侍一樣。陛下應該以近前的張讓和遠古的趙高為鑑戒。早日殺掉此人,朝廷自然清明,中原才有可能恢復。”後主笑著說:“黃皓只是一個奔走效勞的小臣,即使他專權,也不會有太大的危害。以前董允常常切齒痛恨黃皓,我對此感到很奇怪。你又何必這麼介意呢?”姜維叩頭奏報說:“陛下如果今天不殺黃皓,那麼災禍就不遠了。”後主說:“‘愛之慾其生,惡之慾其死’,你為何不能容忍一個宦官呢?”說完,他命令近侍到湖山之側把黃皓叫出來,讓黃皓到亭下向姜維叩頭請罪。黃皓哭著向姜維叩頭說:“我只是早晚侍奉皇上而已,並不干預國家政事。將軍不要聽信外人的傳言,想要殺我。我的性命掌握在將軍手中,只求將軍憐憫我!”說完,他叩頭流淚。
姜維憤怒地離開,立刻去見郤正,把這件事詳細地告訴了他。郤正說:“將軍的災禍不遠了。如果將軍有危險,國家也會隨之滅亡!”姜維說:“先生請教我如何保國安身的策略。”郤正說:“隴西有一個地方叫沓中,土地非常肥沃。將軍為何不效仿武侯諸葛亮屯田的事,上奏天子,前去沓中屯田?這樣一來,可以得到麥子來補充軍糧;二來,可以逐步圖謀隴右各郡;三來,魏國人不敢正視漢中;四來,將軍在外掌握兵權,別人無法圖謀你,可以避開災禍。這才是保國安身的策略啊,應該儘早行動。”姜維非常高興,感謝說:“先生的話真是金玉良言。”
第二天,姜維上表奏報後主劉禪,請求去沓中屯田,效仿武侯諸葛亮的事蹟。後主同意了。於是姜維回到漢中,召集眾將說:“我多次出兵,因為糧草不足而未能成功。現在我帶兵八萬去沓中種麥屯田,逐步圖謀進取。你們長期作戰勞苦,現在暫且收兵聚糧,退守漢中。魏兵千里運糧,翻山越嶺,自然疲乏不堪。他們疲乏了就會撤退,那時我們乘虛追擊襲擊他們,沒有不勝的。”於是命令胡濟守漢壽城、王含守樂城、蔣斌守漢城、蔣舒和傅僉共同守關隘。分派完畢後,姜維親自帶領八萬大軍前往沓中種麥屯田作為長久之計。
卻說鄧艾聽說姜維在沓中屯田後,在路上設立了四十多個營寨連綿不絕像長蛇一樣。鄧艾於是命令細作偵察地形並畫成地圖具表上奏給晉公司馬昭。司馬昭看到地圖後大怒說:“姜維屢次侵犯中原不能剿除他真是我的心腹大患啊!”賈充說:“姜維深得孔明的真傳很難對付他。我們需要找一個智勇雙全的將領前去刺殺他才能免除動兵之勞。”從事中郎荀勗說:“不對。現在蜀主劉禪沉溺於酒色之中信任黃皓大臣們都有避禍之心。姜維在沓中屯田正是為了避禍。如果我們派大將去攻打他沒有不勝的道理何必用刺客呢?”司馬昭大笑說:“你說得最對!我想要討伐蜀國誰可以作為將領?”荀勗說:“鄧艾是世上的良才如果再得到鍾會作為副將大事就可以成功了。”司馬昭非常高興地說:“你這話正合我意。”
於是司馬昭召見鍾會並問他說:“我想讓你作為大將去討伐東吳可以嗎?”鍾會說:“主公的本意並不是想討伐東吳而是想討伐蜀國。”司馬昭大笑說:“你確實瞭解我的心思。但是你去討伐蜀國應該用什麼策略呢?”鍾會說:“我料想主公想要討伐蜀國已經畫好了地圖在這裡。”司馬昭展開地圖一看上面詳細記載了一路安營下寨、屯糧積草的地方以及進攻和撤退的路線都有明確的規劃。司馬昭看了非常高興地說:“你真是一位良將啊!你和鄧艾合兵一起攻取蜀國怎麼樣?”鍾會說:“蜀川道路廣闊不能一路進攻應該讓鄧艾分兵各進才可以。”於是司馬昭任命鍾會為鎮西將軍授予他假節鉞的權力讓他都督關中的人馬並調遣青、徐、兗、豫、荊、揚等地的軍隊;同時又派人持節令鄧艾為徵西將軍都督關外隴上的軍隊並約定日期一起討伐蜀國。
第二天司馬昭在朝中商議此事前將軍鄧敦說:“姜維屢次侵犯中原我軍傷亡慘重現在只守不攻還無法保證安全為何要深入到山川危險之地去自取禍亂呢?”
司馬昭生氣地說:“我打算率領仁義之師,去討伐那個不行正道的君主,你怎麼敢違揹我的意願呢!”他命令武士把反對他的人推出去斬了。不一會兒,鄧敦的首級就被獻到了臺階下,眾人都嚇得臉色大變。司馬昭說:“我從徵東以來,已經休息了六年,這期間我們整修兵器,修補鎧甲,已經做好了充分的戰爭準備。我早就想討伐吳、蜀了。現在我們首先平定西蜀,然後利用順流之勢,水陸並進,一鼓作氣吞併東吳,這就像當年滅虢國再取虞國一樣的策略。我估計西蜀的將士,守成都的可能有八九萬,守邊境的不超過四五萬,姜維帶領去屯田的也不過是六七萬。現在我已經命令鄧艾帶領關外隴右計程車兵十多萬,把姜維牽制在沓中,使他不能東顧;又派遣鍾會帶領關中的精兵二三十萬,直接抵達駱谷,分三路襲擊漢中。蜀主劉禪昏庸無能,邊境一旦被攻破,城內男女都會震驚恐懼,蜀漢的滅亡是肯定的了。”眾人都心悅誠服。
此時,鍾會接受了鎮西將軍的印信,起兵討伐蜀漢。他擔心機密洩漏,就以討伐東吳為名義,命令青州、兗州、豫州、荊州、揚州等五處各建造大船,又派遣唐諮在登州、萊州等靠海的地方收集海船。司馬昭不知道他的用意,就把他叫來問:“你從旱路進軍收取川蜀,為什麼要造船呢?”鍾會回答說:“如果蜀國聽說我們大軍進攻,一定會向東吳求救。所以我要先製造聲勢,裝作要討伐東吳的樣子,這樣吳國就不敢輕舉妄動。一年之內,川蜀可以平定,船也可以造好,這時候再去討伐東吳,不是順理成章的事情嗎?”司馬昭聽了非常高興,就選擇了吉日出兵。當時是魏景元四年的秋七月初三日,鍾會率領大軍出征,司馬昭把他送到城外十里遠的地方才返回。西曹掾邵悌私下裡對司馬昭說:“現在您派鍾會帶領十萬大軍伐蜀,我看鐘會野心勃勃,不能讓他獨掌大權。”司馬昭笑著說:“我難道不知道他是什麼樣的人嗎?”邵悌說:“您既然知道,為什麼不派人和他一起執掌軍權呢?”司馬昭只說了幾句話,就讓邵悌的疑心頓時消除了。