公元231年二月,诸葛亮第四次率军攻魏,包围了曹魏部署在祁山地区的贾嗣、魏平部,并用木牛运输粮草,以保障其后勤供给。当时,曹魏的国家安全形势比较严峻,东南方向要防备东吴,西北方向还要防备鲜卑。而恰恰在此时,主持对蜀汉作战的大司马曹真生病(历史上真实的曹真绝不是三国演义写的那么无能),于是魏明帝曹睿将司马懿从荆州调来,让其坐镇长安,统一指挥张郃、费曜、戴陵、郭淮等部,主持抵御蜀军。
对于这次军事行动,魏明帝对司马懿给与了高度信任,称“西方有事,非君莫可付者”(《晋书·宣帝纪》)。司马懿接受重任后,即以主力救援祁山。鉴于当时的军事态势和蜀军特点,司马懿认为蜀军远道而来,粮食有限,于是将此战的战略目标定位为:凭险坚守,不与蜀军主力决战,逼退蜀军就算完成任务。
诸葛亮得知司马懿进军的消息后,留下一部继续进攻祁山,自己则亲自率军迎战司马懿。起初,司马懿部将郭淮、费曜等抄袭诸葛亮,但被诸葛亮击败,蜀军乘机收割了上邽的麦子。随后,魏、蜀两军主力在上邽以东遭遇。
此时,司马懿在初战不利的形势下,立即收兵据险防守,不与诸葛亮交战,诸葛亮只得率军退回。而司马懿也尾随诸葛亮到达卤城。此时,老将张郃建议:“彼远来逆我,请战不得,谓我利不在战,欲以长计制之也。
且祁山知大军已在近,人情自固,可止屯于此,分为奇兵,示出其后,不宜进前而不敢逼,坐失民望也。今亮孤军食少,亦行去矣。”(《资治通鉴》)主张分出一支奇兵,包抄诸葛亮的后路,不应该只尾随而不敢追击。
对于张郃的建议,司马懿并不听从,还是继续尾随诸葛亮,追上蜀军后,司马懿还是不与诸葛亮交战,而是选择在山上扎营,继续据险不战。司马懿此举令众将极为不满,甚至说出了“公畏蜀如虎,奈天下笑何!”(《资治通鉴》)的话。
到了这年五月,司马懿派张郃攻击围祁山的蜀军,自己则亲自率中路军与诸葛亮正面对峙,在部将的纷纷要求下,司马懿率军与诸葛亮蜀军正面交战,不料魏军大败,被俘三千人。
于是司马懿随即退军保卫大营,继续坚守不出。至当年六月,蜀军后勤补给困难的致命问题再度凸显,全军粮尽,诸葛亮只得退军。司马懿令张郃追击,但张郃在木门被诸葛亮设置的伏兵射杀。
纵观两人的第一次巅峰对决,司马懿战略目标十分明确,就是利用蜀军远道而来、粮草不济的弱点,将其逼退。不过司马懿虽达到了战略目的,但在战术上却没有占到半点便宜。而诸葛亮虽然取得了战术上的胜利,但还是没有解决后勤补给这老大难问题,还是没有达到战略目标,被迫退军。