蜀汉建兴七年夏四月,诸葛亮在祁山分兵三寨,专门等待魏军。而司马懿引兵至长安,与张合会合后,命令张合为先锋,戴陵为副将,率领十万大军前往祁山,于渭水南岸扎营。郭淮和孙礼也加入了大营。
司马懿询问他们是否与蜀军交过战,两人回答说没有。司马懿分析说:“蜀军千里迢迢而来,利在速战速决。现在他们却不主动出战,必定有阴谋。陇西各路有没有消息传来?”郭淮回答说:“我们已经派细作探得各郡都在严密防守,并无异常。只是武都、阴平两处还没有回报。”
司马懿决定自己派人与孔明交战,同时命令郭淮和孙礼从小路去救援武都、阴平,并趁机袭击蜀军的后方。他认为这样蜀军必定会自乱阵脚。于是,郭淮和孙礼领兵五千,从陇西小路出发去救援两郡并袭击蜀军。
然而,在他们行进的途中,突然接到哨马的报告,说阴平已经被王平攻破,武都也已经被姜维攻破。而且蜀军离他们并不远。孙礼听到这个消息后说:“既然蜀军已经攻破了城池,为什么还在外面陈兵?这其中必定有诈。我们不如赶紧撤退。”郭淮同意了他的意见。
就在他们准备传令撤军的时候,突然一声炮响,山背后闪出一支军队来。旗上写着“汉丞相诸葛亮”,中央一辆四轮车上坐着孔明,左边有关兴,右边有张苞。郭淮和孙礼看到这一幕后大惊失色。孔明大笑着说:“郭淮、孙礼休想逃跑!司马懿的计策怎么能瞒得过我?他每天派人前来挑战,却让你们袭击我们的后方。但武都、阴平已经被我们攻取了。你们二人如果不早点投降,还想驱兵与我们决战吗?”
郭淮和孙礼听后非常恐慌。突然背后喊声震天,王平、姜维引兵从后面杀来。关兴、张苞二将又引军从前面杀来。两下夹攻之下,魏兵大败而逃。郭淮和孙礼弃马爬山而逃得性命。张苞在追赶过程中不慎连人带马跌入山涧内受伤被送回成都养病。
郭淮和孙礼逃回去后向司马懿报告了战败的情况以及武都、阴平两郡的失守。司马懿并没有责怪他们而是说:“这不是你们的过错而是孔明的智谋高于我们。我们可以再引兵守把雍、郿二城不要出战。我自有破敌之策。”于是二人领命而去。
接着司马懿又召来张合和戴陵吩咐说:“现在孔明得到了武都、阴平两郡他必然会安抚百姓以稳定民心不会留在营中。你们二人各引一万精兵今夜出发抄在蜀兵营后一起奋勇杀敌。我会在前面布阵只等蜀兵势乱就大举进攻。两军并力一定能够夺回蜀寨。如果我们能够占据这里的有利地形破敌就易如反掌了。”张合和戴陵领命引兵而去。
他们分别从小路进发深入蜀兵之后。三更时分他们来到大路上两军会合并从蜀兵背后杀来。然而他们行进不到三十里就发现前军无法前进了。张合和戴陵亲自上前察看只见数百辆草车横截去路。张合说:“这必定是孔明的计策我们赶紧找路退回吧。”然而就在他们准备撤军的时候突然满山火光通明鼓角齐鸣伏兵从四面八方涌出将二人围住。
孔明在祁山上大声喊道:“戴陵、张合你们听好了!司马懿料定我会去武都、阴平安抚百姓不在营中所以派你们二人来劫我的营寨。但你们却中了我的计策!你们二人只是无名小卒我不忍心杀害你们。赶快下马投降吧!”
张合勃然大怒,指着孔明破口大骂:“你这山野村夫,竟敢侵犯我们大国的领土,还敢说出这种大话!我要是捉到你,一定将你碎尸万段!”说完,他纵马挺枪,直接向山上冲去。山上的蜀兵箭如雨下,张合无法攻上山去,于是他挥舞长枪,在万军之中左冲右突,无人能挡。蜀兵将戴陵团团围住,张合见状,急忙沿着原路返回,但没找到戴陵。他毫不畏惧,再次杀入重围,成功救出戴陵并撤回。
孔明在山上看到张合在万军之中英勇奋战,不禁对左右说:“以前常听人说张翼德大战张合时,人们都非常惊恐。我今天亲眼所见,才知道他确实勇猛无比。如果我们留下这个人,他必将成为蜀中的大患。我必须除掉他。”于是孔明下令收兵回营。
与此同时,司马懿已经布好阵势,只等蜀兵一乱就发动攻击。但突然看到张合和戴陵狼狈地逃回来,报告说:“孔明早有防备,因此我们大败而归。”司马懿大吃一惊说:“孔明真是神人啊!我们不如先撤退。”于是立即传令全军撤回本寨坚守不出。
孔明大胜后缴获了大量的器械和马匹不计其数。他率领大军回到营地后每天派魏延前去挑战但魏兵就是不出战。一连半个月双方都没有交战。孔明正在帐中思考对策时突然接到天子派来的侍中费祎携带的诏书。孔明将费祎接入营中焚香礼拜后打开诏书阅读。诏书中说:街亭之战的失败责任在马谡而你孔明也承担了部分责任自我贬抑。这违背了我的心意现在恢复你丞相的职位你不要再推辞了。前年你出征时斩杀了王双今年又出征使郭淮败逃;你降服了氐、羌两个民族并复兴了二郡:你的威名震慑了凶暴的敌人功勋卓着。现在天下纷扰元凶尚未铲除你身负国家重任却长期自我贬损这不是光扬国家的伟大功业啊。现在我恢复你丞相的职位你不要再推辞了!”
孔明听完诏书后对费祎说:“国家大事尚未完成我怎么能恢复丞相的职位呢?”他坚决推辞不受。但费祎劝道:“丞相如果不接受职位就违背了天子的意愿也会冷落了将士们的心。你应该暂且接受这个职位。”孔明这才拜谢接受。费祎告辞离去。
孔明见司马懿坚守不出便思考出一条计策。他传令全军拔寨而起装作要撤退的样子。这个消息很快就被司马懿的细作探知并报告给他。司马懿说:“孔明一定有什么大计我们不能轻举妄动。”但张合却说:“这肯定是因为他们的粮食吃完了才撤退的我们应该立即追击。”然而司马懿却认为孔明去年大丰收今年麦子又熟了粮食应该很充足。即使转运困难也能支撑半年时间他不可能轻易撤退。这一定是孔明看到我们连续几天不出战故意用计引诱我们。于是司马懿派人远远地去侦察孔明的动向。
侦察兵回报说孔明在离此三十里的地方扎下了营寨。司马懿说:“我猜孔明果然没有撤退。我们应该继续坚守寨栅不能轻易进攻。”就这样过了十天仍然没有任何动静也不见蜀军来挑战。司马懿再次派人去侦察回报说蜀军已经拔营起寨了。但司马懿仍然不信他亲自换上普通士兵的衣服混杂在军队中前去察看。果然发现蜀军又后退了三十里扎下了新的营寨。
司马懿回到营地后对张合说:“这是孔明的计策我们不能追赶。”又过了十天再次派人去侦察回报说蜀军又后退了三十里扎下了营寨。张合说:“孔明用缓兵之计逐渐退向汉中。都督为什么怀疑不早点追击呢?我愿意带领一支部队去决一死战!”但司马懿仍然认为孔明诡计多端如果贸然追击可能会中他的埋伏导致不应有的损失。他说:“孔明诡计极多如果我们有差池就会丧失我军的锐气。因此我们不能轻举妄动。”然而张合却坚持要去他说:“如果我去打败了甘愿接受军法处置。”司马懿见张合如此坚决便说:“既然你要去我们可以分兵两路你带一路先行但要奋力死战。我随后接应以防有伏兵。你明天先进到半路驻扎后天交战这样可以使我们的兵力得到休息。”于是他们分兵完毕。
第二天张合和戴陵带领数十名副将和三万精兵奋勇前进到半路扎下了营寨。而司马懿则留下大量的军队守寨自己只带领五千精兵随后跟进。
孔明秘密派人侦察,发现魏兵在半路上休息。于是,当夜孔明召集众将商议对策,他说:“现在魏兵来追,必然会拼命战斗,你们需要以一当十。我将用伏兵截断他们的后路——这个任务非智勇之将不能担当。”说完,他目光看向了魏延。魏延低头不语。这时,王平站出来说:“我愿意担当此任。”孔明问:“如果失败了怎么办?”王平回答:“我愿意接受军法处置。”孔明赞叹道:“王平肯舍身亲冒矢石,真是忠臣啊!但是,魏兵分成两路前后夹击,我们的伏兵在中间,王平即使智勇双全,也只能挡住一路,无法分身两处。我们还需要再找一位将领同去。”这时,张翼站出来说:“我愿意前往!”孔明看着他,说:“张合是魏国的名将,有万夫不当之勇,你不是他的对手。”张翼说:“如果失败了,我愿意献上我的首级。”孔明说:“既然你敢去,那就和王平各带一万精兵埋伏在山谷中,等魏兵追上来,让他们全部过去,然后你们从后面发动攻击。如果司马懿随后赶来,你们就分兵两头:张翼引一军挡住后队,王平引一军截住前队。两军必须死战,我自有别的计策相助。”两人接受了任务,带兵离去。
孔明又召来姜维、廖化,交给他们一个锦囊,说:“你们带三千精兵,隐藏在前山之上。如果看到魏兵围住王平、张翼,情况十分危急,你们不必去救,只需打开锦囊看里面的计策,自有解救之法。”两人也接受了任务,带兵离去。
接着,孔明又命令吴班、吴懿、马忠、张嶷四将,低声吩咐道:“如果明天魏兵到来,锐气正盛,你们不可直接迎战,应该边战边退。只等看到关兴引兵来掠阵时,你们就回头追杀,我自有兵马接应。”四将也接受了任务,带兵离去。最后,孔明召来关兴,吩咐道:“你带五千精兵,埋伏在山谷之中,只等看到山上红旗摇动时,就引兵杀出。”关兴也接受了任务,带兵离去。
却说张合、戴陵领兵杀来,势如风雨。马忠、张嶷、吴懿、吴班四将迎上前去交战。张合大怒驱使士兵追杀蜀兵边战边退。魏兵追赶了大约二十多里路时值六月天气炎热人马汗如雨下。走到五十里外时魏兵都已经气喘吁吁。这时孔明在山上挥动红旗关兴引兵从山谷中杀出。马忠等四将也一齐引兵反身掩杀回来。张合、戴陵死战不退。
突然之间喊声震天两路蜀军从旁边杀出原来是王平、张翼率领的伏兵。他们奋勇追杀截断了魏兵的后路。张合大声对众将说:“我们到了这个地步如果不决一死战更待何时!”于是魏兵奋力突围但无法脱身。
然而就在此时背后突然鼓角喧天司马懿亲自率领精兵杀到。他指挥众将把王平、张翼围在了核心。张翼大声呼喊:“丞相真是神人啊!他的计策已经算定了我们一定会有良策应对。现在我们应该决一死战!”于是他分兵两路:王平引一军截住张合、戴陵张翼引一军力战司马懿。两头死战喊杀声连天。
姜维、廖化在山上看到魏兵势大蜀兵力危渐渐抵挡不住。姜维对廖化说:“现在情况危急我们可以打开锦囊看计策了。”两人拆开锦囊一看里面写着:“如果司马懿的兵马来围攻王平、张翼非常危急你们两人可以分兵两路直接袭击司马懿的营寨。司马懿必然会急忙回兵你们就可以乘乱攻击他。即使不能夺下他的营寨也可以大获全胜。”两人大喜立即分兵两路直接袭击司马懿的营寨。
原来司马懿也担心中了孔明的计策沿途不断地派人传报消息。他正在催战之间忽然有流星马飞报来说蜀兵两路已经直取他们的大寨去了。司马懿大惊失色对众将说:“我料定孔明有计策你们不信勉强追来现在却误了大事!”于是立即提兵急回但军心已经惶惶不安乱成一团。张翼随后掩杀过来魏兵大败。张合、戴陵见势单力孤也往偏僻的小路上逃走。蜀兵大胜关兴引兵接应各路人马。
司马懿大败一阵逃回营寨时蜀兵已经撤回去了。他收拢败军责骂众将说:“你们不懂兵法只凭血气之勇强行出战才导致这场大败。今后决不允许再轻举妄动如果再有不遵守命令的定将依军法处置!”众将都羞愧地退了下去。这一战魏军死亡的人数极多遗弃的马匹和器械无数。
却说孔明收得胜军马入寨,又打算起兵进攻。忽然有人从成都来报,说张苞已经身死。孔明听到这个消息,放声大哭,口中吐血,昏倒在地。众人急忙救醒他。自此之后,孔明因病卧床不起,诸将都深感感激。后人有诗叹息道:“悍勇张苞欲建功,可怜天不助英雄!武侯泪向西风洒,为念无人佐鞠躬。”
十天之后,孔明叫来董厥、樊建等人,吩咐道:“我自觉头昏脑胀,不能处理事务,不如暂且回汉中养病,再做良好图谋。你们千万不要泄露这个消息,如果司马懿知道了,一定会来攻击我们。”于是传下号令,教当夜暗暗拔寨,全部撤回汉中。孔明走了五天后,司马懿才得知消息,长叹道:“孔明真是神出鬼没,我比不上他啊!”于是司马懿留下诸将在寨中,分兵把守各处隘口,自己则班师回朝。
孔明将大军驻扎在汉中,自己则回到成都养病。文武官僚都出城迎接他,将他送入丞相府中。后主亲自前来问候病情,并命令御医为他调治。渐渐地,孔明的病情开始好转。
建兴八年秋七月,魏国都督曹真病愈后上表说:“蜀兵多次侵犯我国边境,屡次进犯中原,如果不加以剿除,必将成为后患。现在正值秋凉时节,人马安闲,正是征伐的好时机。我愿意与司马懿一同率领大军,直接进入汉中,消灭这些奸党,以清除边境的隐患。”魏主非常高兴,并询问侍中刘晔的意见:“子丹劝我伐蜀,你觉得如何?”刘晔回答说:“大将军的话是对的。现在如果不剿除蜀国,以后必将成为大患。陛下可以采纳他的意见。”魏主点头表示同意。
刘晔从宫中出来后回到家中,有众多大臣前来探望并询问:“听说天子与你商议起兵伐蜀的事情,这件事到底怎么样?”刘晔回答说:“没有这回事。蜀国有山川之险要地形作为屏障,不是那么容易攻克的。如果轻易出兵只会白白浪费军马之力而对国家没有益处。”众官听后都默默无言地离开了。
杨暨入宫奏报说:“昨天我听说刘晔劝陛下伐蜀今天又与众臣商议说不可伐这是欺骗陛下的行为。陛下何不召见他来问个明白?”魏主于是召见刘晔入宫问道:“你昨天劝我伐蜀今天又说不可以这是为什么呢?”刘晔回答说:“我仔细考虑过了蜀国确实不可轻易攻打。”魏主听后大笑起来。
过了一会儿杨暨从宫中出来刘晔又奏报说:“我昨天劝陛下伐蜀是因为这是国家的大事怎么能随便泄露给别人呢?用兵之道在于诡诈和机密:事情没有发生之前一定要严格保密。”魏主听后恍然大悟说:“你说得对。”从此对刘晔更加敬重和信任。
在十天内司马懿也入朝拜见魏主将曹真的表奏之事详细地说了一遍并建议道:“我料想东吴现在还不敢轻举妄动我们正好可以趁此机会去攻打蜀国。”魏主于是任命曹真为大司马、征西大都督司马懿为大将军、征西副都督刘晔为军师。三人拜别魏主后率领四十万大军前往长安直奔剑阁来取汉中。其他将领如郭淮、孙礼等也分别带领军队从各条路线进攻。
汉中人得知这个消息后迅速报告给成都方面。此时孔明已经病愈多时每天都在操练人马学习八阵之法已经精通熟练了正准备出兵中原。听到这个消息后他立即召来张嶷和王平吩咐道:“你们两人先带领一千兵马去守住陈仓古道以抵挡魏军的进攻我会随后率领大军前来接应。”两人听后抱怨道:“人家都说魏军有四十万人马却诈称有八十万声势浩大得很怎么只给我们一千兵马去守隘口呢?如果魏军大举进攻我们怎么抵挡得住呢?”孔明回答说:“我本来想多给你们一些兵马但又怕士卒们太过辛苦所以才少给了一些。”张嶷和王平面面相觑都不敢接受这个任务。
孔明说:“如果有疏忽失误,不是你们的过错。不必多说,可以赶快出发了。”两人又哀求道:“如果丞相要杀我们两人,就在这里请动手吧,只是不敢去执行这个任务。”孔明笑道:“你们怎么这么愚蠢呢!我命令你们去,自然有我的考虑。我昨晚仰观天象,看到毕星位于太阴的分野,这个月内必定会有大雨淋漓,魏兵虽然有四十万,但他们怎么敢深入山险之地呢?因此不需要用太多的兵力,我们决不会受到危害。我将把大军都安置在汉中,让他们在那里安居一个月,等待魏兵撤退。那时候,我们再以大军追击,以逸待劳,我们的十万大军就可以战胜魏兵的四十万大军了。”两人听完,才大喜过望,拜辞而去。
孔明随后率领大军从汉中出发,传令教各处隘口准备干柴草料和细粮,都足够一个月人马食用,以防备秋雨;给大军宽限一个月的时间,先提供衣食,等待出征。
却说曹真、司马懿一同率领大军,直接来到陈仓城内,却看不到一间房屋。询问当地人,都说孔明回去时放火烧毁了。曹真便想从陈仓道进发,司马懿说:“不能轻进。我夜观天象,看到毕星位于太阴的分野,这个月内必定会有大雨。如果我们深入重地,常胜则可以,但如果有疏忽失误,人马就会受苦,要撤退就难了。我们应该在城中搭起窝铺驻扎,以防备阴雨。”曹真听从了他的建议。
不到半个月的时间,大雨倾盆而下,连绵不断。陈仓城外平地水深三尺,军器都湿透了,人们无法入睡,昼夜不安。大雨连续下了三十天,马匹没有草料可吃,死亡无数,军士们怨声载道。消息传入洛阳后,魏主设坛求晴却没有效果。
黄门侍郎王肃上书说:“前人的记载中有这样的话:‘千里馈粮,士有饥色;樵苏后爨,师不宿饱。’这是说的在平地上行军的情况。更何况我们现在深入险阻之地,凿路前进,所付出的辛劳必定是平地的百倍。现在又加上连绵的阴雨,山路陡峭湿滑,人多而拥挤无法展开行动,粮食远道而来难以接续供应。这实在是行军的大忌啊!听说曹真出兵已经超过一个月了但行程才走了一半的山谷治理道路的工程浩大战士们全都参与劳作。这使得敌人能够以逸待劳这是兵家所忌惮的情况啊!说到前代的历史则有武王伐纣出关后又返回的事例;说到近代则有孙权征讨武、文两帝临江而未渡江的情况。这难道不是因为他们顺应天意、知晓时机、善于权变吗?希望陛下能够考虑到水雨艰难的情况让士卒们得到休息。日后如果有机会再乘势出击。这就是所谓‘让民众在喜悦中勇于赴难忘记生死’的道理啊!”
魏主看了奏表正在犹豫杨阜、华歆也上书进谏。于是魏主下诏派遣使者传令曹真、司马懿回朝。曹真与司马懿商议说:“现在已经连续阴雨三十天了军士们没有了斗志都想着回家怎么能够禁止得了呢?”司马懿说:“不如我们先撤回去吧。”曹真说:“如果孔明追来怎么办?”司马懿说:“我们可以先埋伏两支军队断后然后再撤兵。”正在商议的时候忽然有使者来传达魏主的命令于是两人将大军的前队改为后队后队改为前队缓缓撤退。
而孔明计算着一个月的秋雨即将结束但天还没有放晴便亲自率领一支军队驻扎在城固又传令让大军在赤坡集结驻扎。孔明升帐召集众将说:“我预料魏兵一定会撤退魏主也一定会下诏召回曹真和司马懿的军队。如果我们追击他们他们必定会有准备不如让他们先走我们再作别的打算。”忽然王平派人来报告说魏兵已经撤退了。孔明吩咐来人传话给王平:“不要追击他们我自有打败魏兵的策略。”