公元234年春天,諸葛亮經過三年勸農講武的準備,在斜谷口再率十萬大軍出斜谷口,同時派使臣到東吳,希望孫權能同時攻魏。四月,蜀軍到達郿縣,在渭水南岸的五丈原下紮營寨。司馬懿則率領魏軍背水築營,想再次以持久戰消耗蜀軍糧食,令蜀軍自行撤退。
魏將郭淮認為蜀軍必會爭奪北原,司馬懿認同,便派郭淮先前往防備。果然,蜀軍到來,但被郭淮擊退。諸葛亮考慮到前幾次北伐都因為運糧不繼,導致功敗垂成,於是開始在渭、濱的居民之間屯田生產糧食,百姓亦相安無事,一切如常。
而孫權也響應蜀漢,親率十萬大軍北上攻魏,但被魏明帝曹睿親自率軍打敗。
魏、蜀兩軍相峙了百多日,其間諸葛亮多次派人挑戰,司馬懿軍始終堅守不出。
蜀軍叫陣無效,情急之中,諸葛亮派人給司馬懿送去一套女人衣裳以示侮辱,意思是說,你司馬公如此小心謹慎,只配作女人而不配作將帥。如此羞辱魏軍將帥,魏將確實被激怒了,他們火冒三丈,堅決要求出戰。司馬懿見勸說或下令以不足以制止眾將求戰,只好告訴眾將,致書表奏朝廷請戰,皇帝允許,就立即出戰。於是,司馬公給魏明帝送上請戰書,明帝深知司馬懿的用意,立即派衛尉辛毗為軍師,持詔到陣前,宣稱皇帝有令,只准堅守,不准出戰。
蜀將姜維知道辛毗傳達朝廷詣意,對諸葛亮說:「辛毗至此,魏軍更不會出戰了。」諸葛亮也深知司馬懿的用意,就像司馬公知道他的用意一樣,他說:「司馬懿本來就不想出戰,所謂請戰只不過是借口。將在外,君命有所不受,如果他想出戰,完全可以自己作主,有什麼必要往返千里去請戰呢!」兩軍長期相持,蜀軍力量漸漸不支。諸葛亮也終因積勞成疾而病死軍中。蜀將只好按照諸葛亮死前的部署,緩緩撤軍退回蜀中。
那麼司馬懿為什麼不敢跟諸葛亮打一仗,僅僅是因為魏國的國力高於蜀國不需要打嗎?
早年曹操為丞相以後,使用強制手段辟司馬懿為文學掾。曹操對使者說,「若復盤桓,便收之」。司馬懿畏懼,只得就職。曹操讓他與太子往來游處,歷任黃門侍郎、議郎、丞相東曹屬、丞相主簿等職。
曹操逐漸察覺司馬懿「有雄豪志」,又發現他有「狼顧之相」,心裡很忌諱。因此對曹丕說,司馬懿不是甘為臣下的人,必會干預我們的家族之事。但因曹丕和司馬懿關係很好,總是回護他,而得以無事,於是司馬懿勤於職守,廢寢忘食,遂使曹操安心。
後在立儲的問題上,司馬懿與曹丕站在一隊,深得曹丕的信任。
公元226年五月,曹丕駕崩,享年四十歲。臨終時,令司馬懿與中軍大將軍曹真、鎮軍大將軍陳群、征東大將軍曹休為輔政大臣。
司馬懿不戰而守,不是畏懼諸葛亮,反而是讓諸葛亮的威脅能夠長期存在,以邊陲之事使自己的兵權正當化。孔明死後,公孫淵又反,司馬懿一年時間平滅了遼東。值此之際,曹叡病故。齊王芳即位,曹芳仍然使用老套路,重用曹氏宗親,升仲達為太傅,由曹爽兄弟掌握兵權。為什麼他們敢如此,而曹叡不敢?並非曹叡與仲達親近,也並非曹爽的政治手段要高於曹真,僅僅在於孔明已死,蜀中無人。按說司馬仲達見此情況應當適時隱退了,但「肅清萬里,總齊八方」的大志,使他不能甘心於太傅這一養老閒職。於是,詐病賺曹爽,重奪兵權,與此同時,他又提拔了鄧艾、鍾會等新人,為伐蜀統一做好了準備。
因此,諸葛孔明既是仲達的敵人,又是戰爭裡的知音,又是仲達能夠掌握兵權的誘因。司馬懿為何不戰,一是以守自保,風險最小,只要諸葛退兵,仍有功績;而更為重要的是,他以諸葛之威脅使得魏室不敢輕易罷其兵權,進而能夠控制曹魏的政權。