司马懿上奏魏主曹睿说:“我曾向您报告,预测诸葛亮一定会从陈仓出兵,所以派郝昭去把守。现在看来,我的预测果然准确。如果诸葛亮从陈仓进攻,他们运粮将会非常方便。幸好有郝昭和王双在那里把守,蜀军不敢从那条路运粮。其他的小路都非常难走,搬运粮食将会非常困难。我计算过,蜀军的粮食只够一个月用,所以他们急于求战。我军只需要坚守阵地,等待他们粮尽自退。陛下可以下诏命令曹真坚守各路关隘,不要出战。不出一个月,蜀军就会自行撤退。那时我们再乘虚攻击,诸葛亮就可以被擒获了。”
曹睿听后非常高兴,说:“你既然有先见之明,为什么不亲自带领一支jūn_duì 去袭击蜀军呢?”司马懿回答说:“我并不是爱惜自己的生命,而是想保存这些兵力,以防东吴的陆逊。孙权不久必将自立为帝,如果他称帝了,恐怕陛下会派兵讨伐他,他一定会先派兵入侵我国。所以我想留下兵力来对付他。”
正在此时,忽然有近臣来报告说:“曹都督有军情上报。”司马懿说:“陛下可以立刻派人去告诫曹真,让他追击蜀军时,一定要观察清楚敌情,不可深入敌方重地,以免中了诸葛亮的计策。”曹睿立刻下诏,派遣太常卿韩暨持节去告诫曹真:“切不可轻易出战,务必谨慎防守。只等蜀军自行退去后,再乘机攻击他们。”
司马懿送韩暨到城外,嘱咐他说:“我把这个功劳让给曹真了。你见到曹真时,不要说是我的主意,只说是天子下诏让他保守为上。另外,追赶蜀军的人一定要仔细挑选,不要让那些性急气躁的人去追。”韩暨辞别而去。
此时曹真正在升帐议事,忽然报告说天子派遣太常卿韩暨持节到来。曹真出寨迎接韩暨入内接受诏书后退出与郭淮、孙礼商议。郭淮笑着说:“这是司马懿的见解。”曹真问:“这个见解怎么样?”郭淮说:“他深知诸葛亮的用兵方法。以后能够抵御蜀军的必然是司马懿。”曹真说:“如果蜀军不撤退我们又该怎么办?”郭淮说:“可以秘密派人去告诉王双从小路上带兵巡逻蜀军自然就不敢运粮了。等他们粮食耗尽士兵撤退时我们再乘势追击就可以大获全胜。”孙礼说:“我去祁山假装运粮兵车上都装满干柴茅草并灌入硫黄焰硝再让人虚报说陇西运粮队到了。如果蜀军缺粮必然会来抢夺。等他们进入伏击圈后就放火烧车外面再派伏兵夹击就可以打败他们了。”曹真大喜说:“这个计策太好了!”于是立刻命令孙礼带兵按计划行事又派人告诉王双从小路上带兵巡逻郭淮则带兵去箕谷、街亭一带防守并让各路军马守住险要关隘。曹真又命令张辽的儿子张虎为先锋乐进的儿子乐綝为副先锋共同守卫头营不许出战。
而在祁山的蜀军大营中诸葛亮每天都在派人挑战但魏军却坚守不出。诸葛亮召来姜维等人商议说:“魏军坚守不出是因为他们料到我们军中缺粮。现在陈仓的粮道不通其他小路又难走我计算了一下我们随军的粮食不够一个月用的了怎么办呢?”正在大家愁眉不展之时忽然有人来报告说:“陇西的魏军有几千辆运粮车正在祁山之西运粮运粮官是孙礼。”诸葛亮问:“这个孙礼是什么样的人?”有了解魏军情况的人说:“这个人曾经跟随魏主在大石山打猎时忽然惊起一只猛虎直扑魏主孙礼下马拔剑斩杀了猛虎从此被封为上将军是曹真的心腹之人。”诸葛亮笑着说:“这是魏将料到我们缺粮所以用这个计策来引诱我们。车上装载的一定是茅草等引火之物。我平生最擅长用火攻他们却想用这个计策来引诱我吗?如果他们知道我们去劫粮车一定会来偷袭我们的大营。我们可以将计就计行事。”
于是诸葛亮召来马岱吩咐说:“你带三千兵马直接去魏军屯粮的地方但不可进入他们的营寨只在上风头放火。如果烧着了他们的车辆魏军一定会来围攻我们的大营。”同时又派遣马忠、张嶷各带五千兵马在外围策应内外夹攻。三人领命而去。诸葛亮又召来关兴、张苞吩咐说:“魏军的头营连接着四通八达的道路。今晚如果西山火起魏军一定会来偷袭我们的大营。你们两人埋伏在魏寨左右只等他们出兵你们就可以趁机偷袭他们。”接着又召来吴班、吴懿吩咐说:“你们两人各带一军埋伏在营外。如果魏兵来了就可以截断他们的退路。”诸葛亮分派完毕后自己则在祁山上凭高而坐观察战局。
魏军探子察觉到蜀军打算来劫粮,慌忙向孙礼报告,孙礼立刻派人飞马告知曹真。曹真随即派人前往头营,向张虎、乐綝传令:“今夜如果山西方向火起,那必定是蜀军前来劫营。你们可以按照计划行动。”两人领命后,命令士兵登楼专门观察号火。
孙礼将兵马埋伏在山西方向,静待蜀军的到来。是夜二更时分,马岱率领三千精兵悄然抵达,人人口中衔枚,马匹都被勒住口,径直杀向魏营。他们看到魏营中车仗重重叠叠,攒绕成营,车仗上虚插着旌旗。正值西南风起,马岱命令士兵直接去营南放火,霎时间,车仗尽燃,火光冲天。孙礼误以为是蜀军主力到来,急忙引兵杀出,与此同时,魏寨内也放起了号火。
然而,背后却鼓角喧天,两路蜀兵从火光中杀出,原来是马忠、张嶷率军前来,将魏军团团围住。孙礼大惊失色。此时,又听得魏军中喊声大起,一彪人马从火光边杀出,领头的正是马岱。内外夹攻之下,魏兵大败,由于火势凶猛,风势又急,人马相互践踏,死者无数。孙礼带着受伤的士兵,冒火突围而走。
张虎在营中看到火光冲天,以为蜀军已败,于是与乐綝一起大开寨门,引兵杀向蜀寨。然而,蜀寨中却空无一人。两人急忙收兵回营时,却被吴班、吴懿两路蜀兵截断归路。张虎、乐綝奋力冲出重围,逃回本寨时,只见土城之上箭如雨下,原来关兴、张苞已经趁机袭取了营寨。
这一战,魏兵大败而归,纷纷逃向曹真的大寨。曹真看到败军回来,又听得孙礼汇报了中计之事,于是决定紧守大寨,不再出战。蜀兵得胜后,回到孔明处报捷。
孔明密授计策给魏延,同时命令全军拔寨齐起准备撤退。杨仪不解地问道:“如今已经大胜魏军,为何要撤退呢?”孔明解释道:“我军缺粮利于速战速决。如今魏军坚守不出使我军陷入困境。虽然他们暂时兵败但中原必定会有援军赶来。如果我们被他们以轻骑袭扰粮道那时就难以撤退了。现在乘魏军新败之际出其不意地撤退是最明智的选择。”
孔明又说道:“我唯一担心的是魏延一军在陈仓道口被王双阻住无法脱身。我已经派人密授计策给他让他设法斩杀王双使魏军不敢追击。现在我们让后队先行撤退。”当夜孔明只留下金鼓手在寨中打更制造假象。一夜之间蜀军已经全部撤退只留下了一座空营。
曹真在寨中忧闷不已忽然接到报告说左将军张合领军到来。张合下马入帐对曹真说:“我奉圣旨特来助战。”曹真问:“你见到仲达了吗?”张合回答说:“仲达告诉我如果我军胜了蜀兵就不敢轻易撤退;如果我军败了蜀兵就必定会迅速撤退。现在我军失利了他曾去探过蜀兵的消息吗?”曹真说:“还没有。”于是立即派人前去探查果然发现蜀营已经是座空营只插着几十面旌旗而已蜀兵已经撤退了两天。曹真后悔不已但已经无济于事。
与此同时魏延按照孔明的密计在当夜二更时分拔寨迅速撤退回汉中。早有细作将消息告知了王双王双立刻率军全力追赶。追了二十多里眼看就要追上蜀军时忽然看到前方魏延的旗号在风中飘扬。王双大叫道:“魏延休走!”然而蜀兵并不回头继续撤退。王双拍马赶来这时背后的魏兵突然喊道:“城外寨中火起了恐怕我们中了敌人的奸计!”