蜀漢建興七年夏四月,孔明兵在祁山,分作三寨,專候魏兵。卻說司馬懿引兵到長安,張郃接見,備言前事。懿令郃為先鋒,戴陵為副將,引十萬兵到祁山,於渭水之南下寨。郭淮、孫禮入寨參見。懿問曰:「汝等曾與蜀兵對陣否?」二人答曰:「未也。」懿曰:「蜀兵千里而來,利在速戰;今來此不戰,必有謀也。隴西諸路,曾有信息否?」淮曰:「已有細作探得各郡十分用心,日夜提防,並無他事。只有武都、陰平二處,未曾回報。」懿曰:「吾自差人與孔明交戰。汝二人急從小路去救二郡,卻掩在蜀兵之後,彼必自亂矣。」
二人受計,引兵五千,從隴西小路來救武都、陰平,就襲蜀兵之後。郭淮於路謂孫禮曰:「仲達比孔明如何?」禮曰:「孔明勝仲達多矣。」淮曰:「孔明雖勝,此一計足顯仲達有過人之智。蜀兵如正攻兩郡,我等從後抄到,彼豈不自亂乎?」正言間,忽哨馬來報:「陰平已被王平打破了,武都已被姜維打破了。前離蜀兵不遠。」禮曰:「蜀兵既已打破了城池,如何陳兵於外?必有詐也。不如速退。」郭淮從之。方傳令教軍退時,忽然一聲炮響,山背後閃出一枝軍馬來,旗上大書:「漢丞相諸葛亮」,中央一輛四輪車,孔明端坐於上;左有關興,右有張苞。孫、郭二人見之,大驚。孔明大笑曰:「郭淮、孫禮休走!司馬懿之計,安能瞞得過吾?他每日令人在前交戰,卻教汝等襲吾軍後。武都、陰平吾已取了。汝二人不早來降,欲驅兵與吾決戰耶?」郭淮、孫禮聽畢,大慌。忽然背後喊殺連天,王平、姜維引兵從後殺來。興、苞二將又引軍從前面殺來。兩下夾攻,魏兵大敗。郭、孫二人棄馬爬山而走。張苞望見,驟馬趕來;不期連人帶馬,跌入澗內,後軍急忙救起,頭已跌破。孔明令人送回成都養病。
卻說郭、孫二人走脫,回見司馬懿曰:「武都、陰平二郡已失。孔明伏於要路,前後攻殺,因此大敗,棄馬步行,方得逃回。」懿曰:「非汝等之罪,孔明智在吾先。可再引兵守把雍、郿二城,切勿出戰。吾自有破敵之策。」二人拜辭而去。懿又喚張郃、戴陵分付曰:「今孔明得了武都、陰平,必然撫百姓以安民心,不在營中矣。汝二人各引一萬精兵,今夜起身,抄在蜀兵營後,一齊奮勇殺將過來;吾卻引軍在前佈陣,只待蜀兵勢亂,吾大驅士馬,攻殺進去:兩軍併力,可奪蜀寨也。若得此地山勢,破敵何難?」二人受計引兵而去。
戴陵在左,張郃在右,各取小路進發,深入蜀兵之後。三更時分,來到大路,兩軍相遇,合兵一處,卻從蜀兵背後殺來。行不到三十里,前軍不行。張、戴二人自縱馬視之,只見數百輛草車橫截去路。郃曰:「此必有準備。可急取路而回。」才傳令退軍,只見滿山火光齊明,鼓角大震,伏兵四下皆出,把二人圍住。孔明在祁山上大叫曰:「戴陵、張郃可聽吾言:司馬懿料吾往武都、陰平撫民,不在營中,故令汝二人來劫吾寨,卻中吾之計也。汝二人乃無名下將,吾不殺害,下馬早降!」郃大怒,指孔明而罵曰:「汝乃山野村夫,侵吾大國境界,如何敢發此言!吾若捉住汝時,碎屍萬段!」言訖,縱馬挺槍,殺上山來。山上矢石如雨,郃不能上山,乃拍馬舞槍,衝出重圍,無人敢當。蜀兵困戴陵在垓心。郃殺出舊路,不見戴陵,即奮勇翻身又殺入重圍,救出戴陵而回。孔明在山上,見郃在萬軍之中,往來衝突,英勇倍加,乃謂左右曰:「嘗聞張翼德大戰張郃,人皆驚懼。吾今日見之,方知其勇也。若留下此人,必為蜀中之害。吾當除之。」遂收軍還營。
卻說司馬懿引兵布成陣勢,只待蜀兵亂動,一齊攻之。忽見張郃、戴陵狼狽而來,告曰:「孔明先如此提防,因此大敗而歸。」懿大驚曰:「孔明真神人也!不如且退。」即傳令教大軍盡回本寨,堅守不出。且說孔明大勝,所得器械、馬匹,不計其數,乃引大軍回寨。每日令魏延挑戰,魏兵不出。一連半月,不曾交兵。孔明正在帳中思慮,忽報天子遣侍中費禕繼詔至。孔明接入營中,焚香禮畢,開詔讀曰:「街亭之役,咎由馬謖;而君引愆,深自貶抑。重違君意,聽順所守。前年耀師,馘斬王雙;今歲愛征,郭淮遁走;降集氏、羌,復興二郡:威震凶暴,功勳顯然。方今天下騷擾,元惡未梟,君受大任,干國之重,而久自抑損,非所以光揚洪烈矣。今復君丞相,君其勿辭!」孔明聽詔畢,謂費禕曰:「吾國事未成,安可復丞相之職?」堅辭不受。禕曰:「丞相若不受職,拂了天子之意,又冷淡了將士之心。宜且權受。」孔明方才拜受。禕辭去。
孔明見司馬懿不出,思得一計,傳令教各處皆拔寨而起。當有細作報知司馬懿,說孔明退兵了。懿曰:「孔明必有大謀,不可輕動。」張郃曰:「此必因糧盡而回,如何不追?」懿曰:「吾料孔明上年大收,今又麥熟,糧草豐足;雖然轉運艱難,亦可支吾半載,安肯便走?彼見吾連日不戰,故作此計引誘。可令人遠遠哨之。」軍士探知,回報說:「孔明離此三十里下寨。」懿曰:「吾料孔明果不走。且堅守寨柵,不可輕進。」住了旬日,絕無音信,並不見蜀將來戰。懿再令人哨探,回報說:「蜀兵已起營去了。」懿未信,乃更換衣服,雜在軍中,親自來看,果見蜀兵又退三十里下寨。懿回營謂張郃曰:「此乃孔明之計也,不可追趕。」又住了旬日,再令人哨探。回報說:「蜀兵又退三十里下寨。」郃曰:「孔明用緩兵之計,漸退漢中,都督何故懷疑,不早追之?郃願往決一戰!」懿曰:「孔明詭計極多,倘有差失,喪我軍之銳氣。不可輕進。」郃曰:「某去若敗,甘當軍令。」懿曰:「既汝要去,可分兵兩枝:汝引一枝先行,須要奮力死戰;吾隨後接應,以防伏兵。汝次日先進,到半途駐紮,後日交戰,使兵力不乏。」遂分兵已畢。
次日,張郃、戴陵引副將數十員、精兵三萬,奮勇先進,到半路下寨。司馬懿留下許多軍馬守寨,只引五千精兵,隨後進發。原來孔明密令人哨探,見魏兵半路而歇。是夜,孔明喚眾將商議曰:「今魏兵來追,必然死戰,汝等須以一當十,吾以伏兵截其後:非智勇之將,不可當此任。」言畢,以目視魏延。延低頭不語。王平出曰:「某願當之。」孔明曰:「若有失,如何?」平曰:「願當軍令。」孔明歎曰:「王平肯捨身親冒矢石,真忠臣也!雖然如此,奈魏兵分兩枝前後而來,斷吾伏兵在中;平縱然智勇,只可當一頭,豈可分身兩處?須再得一將同去為妙。怎奈軍中再無捨死當先之人!」言未畢,一將出曰:「某願往!」孔明視之,乃張翼也。孔明曰:「張郃乃魏之名將,有萬夫不當之勇,汝非敵手。」翼曰:「若有失事,願獻首於帳下。」孔明曰:「汝既敢去,可與王平各引一萬精兵伏於山谷中;只待魏兵趕上,任他過盡,汝等卻引伏兵從後掩殺。若司馬懿隨後趕來,卻分兵兩頭:張翼引一軍當住後隊,王平引一軍截其前隊。兩軍須要死戰。吾自有別計相助。」二人受計引兵而去。
孔明又喚姜維、廖化分付曰:「與汝二人一個錦囊,引三千精兵,偃旗息鼓,伏於前山之上。如見魏兵圍住王平、張翼,十分危急,不必去救,只開錦囊看視,自有解危之策。」二人受計引兵而去。又令吳班、吳懿、馬忠、張嶷四將,附耳分付曰:「如來日魏兵到,銳氣正盛,不可便迎,且戰且走。只看關興引兵來掠陣之時,汝等便回軍趕殺,吾自有兵接應。」四將受計引兵而去。又喚關興分付曰:「汝引五千精兵,伏於山谷;只看山上紅旗颭動,卻引兵殺出。」興受計引兵而去。
卻說張郃、戴陵領兵前來,驟如風雨。馬忠、張嶷、吳懿、吳班四將接著,出馬交鋒。張郃大怒,驅兵追殺。蜀兵且戰且走,魏兵追趕約有二十餘里,時值六月天氣,十分炎熱,人馬汗如潑水。走到五十里外,魏兵盡皆氣喘。孔明在山上把紅旗一招,關興引兵殺出。馬忠等四將,一齊引兵掩殺回來。張郃、戴陵死戰不退。忽然喊聲大震,兩路軍殺出,乃王平、張翼也。各奮勇追殺,截其後路。郃大叫眾將曰:「汝等到此,不決一死戰,更待何時!」魏兵奮力衝突,不得脫身。忽然背後鼓角喧天,司馬懿自領精兵殺到。懿指揮眾將,把王平、張翼圍在垓心。翼大呼曰:「丞相真神人也!計已算定,必有良謀。吾等當決一死戰!」即分兵兩路:平引一軍截住張郃、戴陵,翼引一軍力當司馬懿。兩頭死戰,叫殺連天。姜維、廖化在山上探望,見魏兵勢大,蜀兵力危,漸漸抵當不住。維謂化曰:「如此危急,可開錦囊看計。」二人拆開視之,內書云:「若司馬懿兵來圍王平、張翼至急,汝二人可分兵兩枝,竟襲司馬懿之營;懿必急退,汝可乘亂攻之。營雖不得,可獲全勝。」二人大喜,即分兵兩路,逕襲司馬懿營中而去。原來司馬懿亦恐中孔明之計,沿途不住的令人傳報。懿正催戰間,忽流星馬飛報,言蜀兵兩路竟取大寨去了,懿大驚失色,乃謂眾將曰:「吾料孔明有計,汝等不信,勉強追來,卻誤了大事!」即提兵急回。軍心惶惶亂走。張翼隨後掩殺,魏兵大敗。張郃、戴陵見勢孤,亦望山僻小路而走,蜀兵大勝。背後關興引兵接應諸路。司馬懿大敗一陣,奔入寨時,蜀兵已自回去。懿收聚敗軍,責罵諸將曰:「汝等不知兵法,只憑血氣之勇,強欲出戰,致有此敗。今後切不許妄動,再有不遵,決正軍法!」眾皆羞慚而退。這一陣,魏軍死者極多,遺棄馬匹器械無數。卻說孔明收得勝軍馬入寨,又欲起兵進取。忽報有人自成都來,說張苞身死。孔明聞知,放聲大哭,口中吐血,昏絕於地。眾人救醒。孔明自此得病臥床不起。諸將無不感激。後人有詩歎曰:「悍勇張苞欲建功,可憐天不助英雄!武侯淚向西風灑,為念無人佐鞠躬。」
旬日之後,孔明喚董厥、樊建等入帳分付曰:「吾自覺昏沉,不能理事;不如且回漢中養病,再作良圖。汝等切勿走洩:司馬懿若知,必來攻擊。」遂傳號令,教當夜暗暗拔寨,皆回漢中。孔明去了五日,懿方得知,乃長歎曰:「孔明真有神出鬼沒之計,吾不能及也!」於是司馬懿留諸將在寨中,分兵守把各處隘口;懿自班師回。
卻說孔明將大軍屯於漢中,自回成都養病;文武官僚出城迎接,送入丞相府中,後主御駕自來問病,命御醫調治,日漸痊可。建興八年秋七月,魏都督曹真病可,乃上表說:「蜀兵數次侵界,屢犯中原,若不剿除,必為後患。今時值秋涼,人馬安閒,正當征伐。臣願與司馬懿同領大軍,逕入漢中,殄滅奸黨,以清邊境。」魏主大喜,問侍中劉曄曰:「子丹勸朕伐蜀,若何?」曄奏曰:「大將軍之言是也。今若不剿除,後必為大患。陛下便可行之。睿點頭。曄出內回家,有眾大臣相探,問曰:「聞天子與公計議興兵伐蜀,此事如何?」曄應曰:「無此事也。蜀有山川之險,非可易圖;空費軍馬之勞,於國無益。」眾官皆默然而出。楊暨入內奏曰:「昨聞劉曄勸陛下伐蜀;今日與眾臣議,又言不可伐:是欺陛下也。陛下何不召而問之?」睿即召劉曄入內問曰:「卿勸朕伐蜀;今又言不可,何也?」曄曰:「臣細詳之,蜀不可伐。」睿大笑。少時,楊暨出內。曄奏曰:「臣昨日勸陛下伐蜀,乃國之大事,豈可妄洩於人?夫兵者,詭道也:事未發,切宜秘之。」睿大悟曰:「卿言是也。」自此愈加敬重。
旬日內,司馬懿入朝,魏主將曹真表奏之事,逐一言之。懿奏曰:「臣料東吳未敢動兵,今日正可乘此去伐蜀。」睿即拜曹真為大司馬、征西大都督,司馬懿為大將軍、征西副都督,劉曄為軍師。三人拜辭魏主,引四十萬大兵,前行至長安,逕奔劍閣,來取漢中。其餘郭淮、孫禮等,各取路而行。漢中人報入成都。此時孔明病好多時,每日操練人馬,習學八陣之法,盡皆精熟,欲取中原;聽得這個消息,遂喚張嶷、王平分付曰:「汝二人先引一千兵去守陳倉古道,以當魏兵;吾卻提大兵便來接應。」二人告曰:「人報魏軍四十萬,詐稱八十萬,聲勢甚大,如何只與一千兵去守隘口?倘魏兵大至,何以拒之?」孔明曰:「吾欲多與,恐士卒辛苦耳。」嶷與平面面相覷,皆不敢去。孔明曰:「若有疏失,非汝等之罪。不必多言,可疾去。」二人又哀告曰:「丞相欲殺某二人,就此清殺,只不敢去。」孔明笑曰:「何其愚也!吾令汝等去,自有主見:吾昨夜仰觀天文,見畢星廛於太陰之分,此月內必有大雨淋漓;魏兵雖有四十萬,安敢深入山險之地?因此不用多軍,決不受害。吾將大軍皆在漢中安居一月,待魏兵退,那時以大兵掩之:以逸待勞,吾十萬之眾可勝魏兵四十萬也。」二人聽畢,方大喜,拜辭而去。孔明隨統大軍出漢中,傳令教各處隘口,預備乾柴草料細糧,俱夠一月人馬支用,以防秋雨;將大軍寬限一月,先給衣食,伺候出征。卻說曹真、司馬懿同領大軍,逕到陳倉城內,不見一間房屋;尋土人問之,皆言孔明回時放火燒燬。曹真便要從陳倉道進發。懿曰:「不可輕進。我夜觀天文,見畢星躔於太陰之分,此月內必有大雨;若深入重地,常勝則可。倘有疏虞,人馬受苦,要退則難。且宜在城中搭起窩鋪住紮,以防陰雨。」真從其言。未及半月,天雨大降,淋漓不止。陳倉城外,平地水深三尺,軍器盡濕,人不得睡,晝夜不安。大雨連降三十日,馬無草料,死者無數,軍士怨聲不絕。傳入洛陽,魏主設壇,求晴不得。黃門侍郎王肅上疏曰:「前志有之;千里饋糧,士有饑色;樵蘇後爨,師不宿飽。此謂平途之行軍者也。又況於深入險阻,鑿路而前,則其為勞,必相百也。今又加之以霖雨,山阪峻滑,眾逼而不展,糧遠而難繼:實行軍之大忌也。聞曹真發已逾月,而行方半谷,治道功大,戰士悉作:是彼偏得以逸待勞,乃兵家之所憚也。言之前代,則武王伐紂,出關而復還;論之近事,則武、文征權,臨江而不濟:豈非順天知時,通於權變者哉?願陛下念水雨艱劇之故,休息士卒;後日有釁,乘時用之。所謂悅以犯難,民忘其死者也。」魏主覽表,正在猶豫,楊阜、華歆亦上疏諫。魏主即下詔,遣使詔曹真、司馬懿還朝。
卻說曹真與司馬懿商議曰:「今連陰三十日,軍無戰心,各有思歸之意,如何禁止?」懿曰:「不如且回。」真曰:「倘孔明追來,怎生退之?」懿曰:「先伏兩軍斷後,方可回兵。」正議間,忽使命來召。二人遂將大軍前隊作後隊,後隊作前隊,徐徐而退。卻說孔明計算一月秋雨將盡,天尚未晴,自提一軍屯於城固,又傳令教大軍會於赤坡駐紮。孔明升帳喚眾將言曰:「吾料魏兵必走,魏主必下詔來取曹真、司馬懿兵回。吾若追之,必有準備;不如任他且去,再作良圖。」忽王平令人報來,說魏兵已回。孔明分付來人,傳與王平:「不可追襲。吾自有破魏兵之策。」正是:魏兵縱使能埋伏,漢相原來不肯追。未知孔明怎生破魏,且看下文分解。