孔明对司马懿说:“你是想斗将、斗兵还是斗阵法?”司马懿回答:“先斗阵法。”孔明说:“那你先布阵让我看看。”司马懿进入中军帐下,手执黄旗指挥,左右两军随之而动,迅速排成一阵。然后他再次上马出阵,问孔明:“你认识我的这个阵吗?”孔明笑着说:“我军中的末将都能布这个阵。这是‘混元一气阵’。”司马懿说:“那你布阵让我看看。”孔明进入阵中,轻轻一摇羽扇,然后又走出阵前,问司马懿:“你认识我的这个阵吗?”司马懿回答:“这个‘八卦阵’,我怎么会不认识!”孔明说:“认识就好,那你敢攻打我的这个阵吗?”司马懿说:“既然认识,当然敢打!”孔明说:“那你就只管来打吧。”
司马懿回到自己的阵营中,叫来戴陵、张虎、乐綝三将,吩咐他们说:“孔明现在布的阵,按照休、生、伤、杜、景、死、惊、开八门来布置。你们三人可以从正东的‘生门’打入,然后往西南的‘休门’杀出,再从正北的‘开门’杀入,这样就可以破他的阵了。你们要小心行事!”于是戴陵居中,张虎在前,乐綝在后,各自带领三十名骑兵,从生门冲入蜀阵。两军呐喊声此起彼伏,相互助威。
三人冲入蜀阵后,只见阵势如同连城一般,无法冲出。他们慌忙引着骑兵转过阵脚,往西南方向冲去,但又被蜀兵用弓箭射住,依然无法冲出。阵中门户重重叠叠,根本分不清东西南北。三将顾此失彼,只能乱撞一气。只见阵内愁云漠漠、惨雾蒙蒙,喊声四起时魏军一个个都被绑了起来送到中军大帐。孔明坐在帐中看着左右将张虎、戴陵、乐綝以及九十名军士都绑在帐下。他笑着说:“我即使捉住了你们也不足为奇!我放你们回去见司马懿让他再读兵书重新学习战法。到时候我们再决一胜负也不迟。你们既然捡回一条命就应该留下你们的兵器和战马。”说完他让人脱去众人的衣服用墨涂黑他们的脸让他们步行出阵。
司马懿看到这一幕大怒不已他回头对众将说:“这样挫败我们的锐气我们还有什么脸面回去见中原的大臣们呢!”于是他指挥三军奋力冲杀想要夺回阵地。他亲自拔剑在手带领百余名骁勇的将领催督冲杀。两军刚刚交会忽然蜀军阵后鼓角齐鸣喊声震天一彪军从西南方向杀来原来是关兴率领的援军到了。司马懿急忙分兵抵挡同时继续催军向前厮杀。然而就在这时魏兵突然大乱原来姜维率领一彪军悄悄地杀了进来。蜀兵从三路夹攻司马懿大惊失色急忙下令退军。蜀兵紧追不舍一直杀到魏军大营附近。司马懿率领三军拼死向南突围才勉强冲出重围但魏兵已经伤亡惨重十之六七都受了伤。
司马懿败退到渭滨南岸下寨坚守不出。孔明则率领得胜之兵回到祁山营地。此时永安城的李严派遣都尉苟安押送粮草到军中交割。但苟安喜欢喝酒在路上耽误了时间迟到了十天。孔明得知后大怒说:“我军中专以粮草为大事!误了三天就该斩首!你现在误了十天还有什么好说的?”他喝令将苟安推出斩首。但长史杨仪劝说:“苟安是李严的人而且我们的钱粮大部分都来自西川。如果杀了他以后恐怕没人敢来送粮了。”孔明听了觉得有道理就下令免去苟安的死刑改为杖责八十后释放。
然而苟安被责打之后心怀怨恨连夜带着五六名亲信骑兵直奔魏营投降。司马懿接见了他并询问了前因后果。苟安拜谢之后详细告诉了司马懿蜀军的情况以及孔明的各种布置和策略。司马懿听后说:“虽然如此但孔明足智多谋你的话难以全信。如果你能为我立下一件大功我那时就奏请天子保举你为上将。”苟安说:“只要有事让我效力我一定尽力而为。”司马懿说:“你可以回成都散布流言说孔明有怨恨天子的意思早晚想要篡位称帝。让你的主上召回孔明就是你的功劳了。”苟安答应了下来连夜赶回成都去见宦官并散布流言蜚语说孔明自恃功高早晚会篡夺皇位。宦官们听了之后大惊失色立刻入宫禀报后主刘禅。后主听后也感到十分惊讶和不安问:“这可如何是好?”宦官们建议说:“可以下诏召回孔明到成都削去他的兵权以免他生叛逆之心。”于是后主就下了一道诏书命令孔明班师回朝。
蒋琬从班列中走出,上奏道:“丞相自从出师以来,屡次建立大功,为何现在要宣召他回来?”后主刘禅回答说:“朕有机密的事情,必须与丞相面谈。”于是派遣使者带着诏书连夜召孔明回朝。使者直接来到祁山的大营,孔明接见后,接受诏书完毕,仰天长叹道:“主上年幼,身边必有奸臣在作祟!我正想建功立业,为何要召回我?我如果不回,就是欺主。但如果遵命而退,日后恐怕再难得到这样的机会了。”
姜维问:“如果大军撤退,司马懿趁机追杀,我们应该如何应对?”孔明说:“我军撤退时,可分五路进行。今天先退这个营,例如营内原有一千兵士,就挖两千个灶,明天挖三千个,后天挖四千个。每天退军时,都要增加灶的数量。”杨仪不解地问:“以前孙膑捉拿庞涓时,用的是添兵减灶的计策从而取得胜利,现在丞相退兵,为何反而增加灶的数量?”孔明解释道:“司马懿善于用兵,他知道我军撤退,必然会来追赶。但他心中会怀疑我有伏兵,所以他一定会到旧营地去数灶。当他看到灶的数量每天都在增加,而且又不清楚我军到底退没退,就会心生疑虑而不敢贸然追击。这样我们就可以从容撤退,不会有不应有的损失。”于是孔明下令全军撤退。
与此同时,司马懿估计着苟安的计策已经奏效,只等蜀军一退就全力追杀。然而正在他犹豫不决时,忽然有探子来报,说蜀营已经空无一人。由于深知孔明的多谋,司马懿不敢轻易追击,只是亲自带着百余名骑兵前往蜀营查看。他命令士兵数灶的数量后,便返回了自己的营地。到了第二天,他再次命令士兵前往蜀军昨日的营地,仔细数清灶的数量。士兵回报说:“这个营地内的灶,比昨天又增加了不少。”司马懿听后对将领们说:“我原本就料到孔明足智多谋,现在看来他果然是在添兵增灶。我们如果贸然追击,必定会中他的计策。不如暂时撤退,再作别的打算。”于是,司马懿下令全军撤退,不再追击蜀军。
孔明成功地率领蜀军,没有折损一兵一卒,安全地撤回了成都。不久之后,川口的当地人向司马懿报告说,在孔明撤军的过程中,他们并没有看到蜀军增加兵力,只是看到灶的数量在不断增加。司马懿听后仰天长叹道:“孔明这是在效仿虞诩的增灶之计来迷惑我啊!论谋略我是比不过他!”于是司马懿带着大军返回了洛阳。