魏兵将蜀兵围困在山上,从辰时到戌时。山上无水,蜀兵们无法做饭,营寨中自行混乱起来。嚷到半夜,山南的蜀兵大开寨门,纷纷下山投降魏军,马谡拦也拦不住。司马懿又叫人沿山放火,使得山上的蜀兵更加慌乱。马谡料想街亭把守不住了,只好带着残兵杀下山来,往西面奔逃。司马懿故意放条大路,让马谡逃过去,背后却有张郃带兵追来。张郃追赶了三十多里,前面有鼓角声响起,一彪人马将马谡放过去,拦下张郃。定睛一看,乃是魏延。那魏延提刀纵马,直取张郃。张郃不与他相斗,指挥军兵转头便回。魏延驱兵追赶,想夺回街亭。赶了五十多里,忽听见喊声大起,两边的伏兵一齐拥出,左边是司马懿,右边是司马昭,将魏延困住。不一会儿,张郃引兵又杀回,三路兵马合在一起,将魏延团团围住。魏延拼命左冲右突,仍然不能脱身,军兵也损失了大半。正在这危急之时,忽然一彪军队杀入重围,正是王平。魏延大喜道:“我命不能绝!”二将合兵一处,拼命厮杀,魏兵这才退去。
魏延带着王平慌忙奔回自己营寨,却见营寨里到处插着魏兵旌旗,申耽、申仪从营内冲杀出来。魏延、王平只好往列柳城奔去,要投高翔。这时高翔听说街亭失守,率领列柳城全部军兵赶来救援,途中正好遇到魏、王二人。魏、王二人将前面街亭失守的事说了一遍。高翔建议道:“不如我们今晚劫魏寨,重新夺回街亭。”当下,三人在山坡下商议定了。
天色将晚,蜀兵分成三路。魏延领兵先走,到了街亭,看不到一个人,心中惊疑,不敢再贸然前进,只伏在路口等候。这时,高翔也到了。二人聚到一起说:“不知魏兵在哪里,王平兵也不到。”正疑惑时,突然一声炮响,火光冲天、鼓声震地之中,魏兵一齐杀出,将魏延、高翔二人围在中间。二人左冲右突,不得脱身。正危急时,山坡后,王平带着一队人马冲出来,救出高翔、魏延,一直逃往列柳城。等赶到城下时,列柳城已被魏将郭淮占领。魏延怕阳平关也失守,慌忙与王平、高翔往阳平关而来。
司马懿料到魏延、王平等人会去据守阳平关。于是吩咐张郃:“你从小路去包抄箕谷的退兵。我会引兵挡住斜谷的蜀兵。如果他们战败逃走,你不要再追,只在途中截住蜀兵辎重。”张郃领命,引一半兵马离开了。司马懿只留下申耽、申仪守城,自己则领了大军往斜谷进。
却说孔明自从令马谡去把守街亭后,心中一直犹疑不定。看过王平送来的地形图后,更是拍案大叫:“这无知的马谡,把我大军坑害了!”左右惊讶地问道:“丞相为何大惊?”孔明说:“马谡放弃重要的路口,却到山上扎寨。如果魏兵蜂拥而至,将四面围住,切断取水通道。不用二天,我军就会自乱。一旦街亭失守,我们怎么回去啊。”长史杨仪正打算前去将马谡召回,街亭、列柳城失守的消息已经传来。孔明跺脚长叹一声:“大事不妙了!这都是我的过错啊。”于是急忙叫来关兴、张苞吩咐道:“你二人各带三千精兵,往武功山小路而行,如果遇到魏兵,不要出兵对战,只需擂鼓呐喊,使他们疑惧不敢向前,自会退兵,到时你们也不必追赶。等魏军全部退去,你们便前去阳平关。”又命张翼领兵去修理剑阁,以准备好退兵的路。再秘密传令,叫大部队暗暗收拾好行装,随时起程。又令马岱、姜维断后,并吩咐:“先埋伏在山谷中,等各路人马全部退去,你们再收兵。”又派心腹人,分别报知天水、南安、安定三郡的官吏军民,全部迁去汉中。
孔明调派完毕,先带了五千兵去西城县搬运粮草。忽然飞马报来:“司马懿带着十万大军,往西城蜂拥而来!”当时孔明身边没有一员大将,只有一班文官,所带的五千军兵,有一半已经派去运粮草了,只剩下二千五百军兵在城里。众官听到这个消息,脸都吓白了。孔明登上城楼一望,果然看见尘土冲天,魏兵分两路向西城县涌来。孔明立即传令:“将旌旗全部收藏起来,军士各自把守城铺。如有妄自进出走动的、大声说谈的,斩!把四个城门全部打开,每个城门口安排二十个军士,扮成老百姓,洒水扫街。如果魏兵到来,不可擅自行动。我自有计策。”就这样吩咐下去了,孔明便带上两个小童、携一张瑶琴,来到城上的敌楼前,靠近栏杆坐下,点燃香炉,就在香烟缭绕中弹起琴来。
却说司马懿的前哨部队来到城下,看见西城这种情形,都不敢进城,只急忙报知司马懿。司马懿笑了笑,不相信是真的,便叫大军停止前进,自己飞马奔到城门口观望。果真看见孔明坐在城楼上,笑容可掬,燃着香炉,奏起琴音。左边一个童子,手中捧着一把宝剑,右边一个童子,手拿一柄尘尾。城门内外,有二十多个老百姓在低头洒水扫街,旁若无人的样子。司马懿看过后,大起疑心,便回到大军之中,令部队往北面山路撤退。次子司马昭问:“莫不是诸葛亮并没有大军,便故弄玄虚,装出这个样子?父亲为什么要退兵呢?”司马懿说:“诸葛亮平生谨慎,从来不做冒险的事。今天将城门大开着,一定是有埋伏,我们如果进军,就是中了他的计了。你们哪里知道这些?还是赶快撤退吧。”于是两路大军全部退去。
孔明看着魏军走远了,这才鼓掌大笑起来。众官没有一个不觉得惊险,问道:“司马懿乃是魏国名将,今天带着十五万精兵来到这里,见了丞相便赶忙退去,这是怎么回事?”孔明说:“他料想我平时用兵谨慎,一定不会冒险。今天见到我们这副模样,怀疑有埋伏,所以撤退。我不是想要冒险,实在是不得已才这样做啊。司马懿现在必定是往山北小路去了,我已经叫关兴、张苞在那里等着他了。”众官惊叹道:“丞相的智谋,真是神鬼莫测啊。如果按我们的意见,一定是弃城而逃了。”孔明说:“我们只有二千五百军士,假使弃城而逃,逃不了多远就会被追上,还不是被司马懿捉住么?”孔明说完,又拍手大笑起来:“我要是司马懿,我一定不会退兵。”又传令下去:“司马懿一定会返回,叫西城的老百姓,跟着军队迁去汉中。”
却说司马懿往武功山小路撤兵,忽然山坡后面喊声连天,鼓声震地。司马懿回头对儿子说:“如果我不退兵,必定中诸葛亮的计。”正说着,大路上杀出一队人马,旗帜上写着“右护卫使虎翼将军张苞”,魏兵吓得弃甲拖戈而逃。没逃多远,山谷中又是震天动地的呐喊声、鼓声,前面一杆大旗上写着“左护卫使龙骧将军关兴”。喊声震地,山谷回声,让人猜不出有多少兵马埋伏着。魏兵惊疑不定,不敢久留,只好抛弃粮草辎重,匆匆逃离。关兴、张苞两人并不追赶,只夺取了敌军的军器粮草。
司马懿带领部队回到街亭,听说诸葛亮已经退兵,忙派兵追赶,但蜀兵已经全部回汉中去了。司马懿带着一支军队回西城,问余下的居民,都说孔明只有二千五百人在城里,没有武将,只有几个文官,城内也没有埋伏。武功山百姓也告诉司马懿:“关兴、张苞各人只有三千人马,绕着山擂鼓呐喊,不敢厮杀。”司马懿听完,后悔已是莫及。后人有诗赞曰:瑶琴三尺胜雄师,诸葛西城退敌时。十五万人回马处,土人指点到今疑。
后来,孔明五出祁山,用兵伐魏,但没能成功,终于积劳成疾,病死在五丈原。再后来,司马昭派大将邓艾攻打成都,刘禅投降。司马昭死后,他的儿子司马炎逼迫魏帝曹奂让位,改国号为晋。司马炎又派王濬伐吴,吴帝孙皓最终投降。所谓天下大势合久必分,分久必合,自此三国归于晋帝司马炎,天下又归一统。