建兴八年(230年)秋,魏军三路进攻汉中,司马懿走西城(今陕西省安康市西北),张合走子午谷,曹真走斜谷。
诸葛亮驻军于城固(今陕西省城固县东)、赤坂(今陕西省洋县东二十里)。
时大雨三十余天,魏军撤退。
同年,诸葛亮使魏延、吴懿西入羌中,大破魏后将军费曜(瑶)、雍州刺史郭淮于阳溪(南安郡内,当在今甘肃省武山西南一带)。
建兴九年(231年)二月,诸葛亮率大军攻祁山,始以木牛运。
时曹真病重,司马懿都督关中诸将出拒。
诸葛亮割麦于上邽(今甘肃省天水县)。
司马懿追亮至卤城(今甘肃省天水市与甘谷之间),掘营自守,有“畏蜀如畏虎”之讥。
同年五月,诸葛亮使魏延、高翔、吴班赴拒,大破司马懿,汉军获甲首三千级,玄铠五千领,角弩三千一百张,于是司马懿退还保营。
魏军卸甲轻装,日夜兼程,在汉阳与诸葛亮相遇,司马懿派将军牛金率轻骑做饵,诸葛亮退兵至祁山,屯兵卤城,据南北二山,堵水筑围墙。
魏军攻破,大破蜀军,俘获斩首数万。
六月,李严因运粮不济呼诸葛亮还师。
张合追亮退兵至木门,中箭身亡——此为二出祁山。
建兴十年(232年),诸葛亮在黄沙休兵劝农,制作木牛流马等,并且练兵讲武,准备再次北伐。
建兴十一年(233年)冬,诸葛亮为再次北出祁山派遣诸军运米,集结大军于斜谷口,治斜谷邸阁。
建兴十二年(234年)二月,诸葛亮经过三年劝农讲武的准备,率大军出斜谷道,据武功五丈原(今陕西省岐山南),屯田于渭滨,同时派使臣到东吴,希望孙权能同时攻魏。四月,蜀军到达郿县,在渭水南岸的五丈原下扎营寨。
司马懿则率领魏军背水筑营,想再次以持久战消耗蜀军粮食,令蜀军自行撤退。
魏将郭淮认为蜀军必会争夺北原,司马懿认同,便派郭淮先前往防备。果然,蜀军到来,但被郭淮击退。
诸葛亮考虑到前几次北伐都因为运粮不继,导致功败垂成,于是开始在渭、滨的居民之间屯田生产粮食,百姓亦相安无事,一切如常。
而孙权也响应蜀汉,亲率十万大军北上攻魏,但被魏明帝曹叡亲自率军打败。
诸葛亮派虎步监孟琰驻武功水北,适逢水涨,阻断了诸葛亮和孟琰的联系。司马懿趁机出兵进攻孟琰。
结果诸葛亮一方面派工兵架桥,一方面派弩兵向司马懿的部队射箭。司马懿看到桥快架好,只好撤退了。
魏、蜀两军相峙了百多日,其间诸葛亮多次派人挑战,司马懿军始终坚守不出。
其后诸葛亮故意让人带一套女人的衣服、头巾送给司马懿,表示司马懿就像女人一样。
魏军将领见此情形都火冒三丈,纷纷要求出战,为了搪塞将领们的要求,司马懿假意上表给魏明帝请战。
曹睿便派卫尉辛毗为军师,到前线节制司马懿。
司马懿曾向蜀汉使者询问诸葛亮的睡眠、饮食和办事多少,不打听军事情况,使者答道:“诸葛公早起晚睡,凡是二十杖以上的责罚,都亲自披阅;所吃的饭食不到几升。”
司马懿告诉人说:“诸葛孔明进食少而事务烦,他还能活多久呢!”
诸葛亮乃分兵屯田,在魏国境内与魏国百姓共同种粮自给自足,打算长期驻扎下去,但诸葛亮却因过于操劳而病重。
八月,诸葛亮病情日益恶化。
司马懿趁诸葛亮病重不能统军,于是亲自率军袭击蜀军后方,斩五百余人,获牲口千余头,降者六百余人。
诸葛亮病重之际,蜀主刘禅派遣尚书仆射李福前来军前问候,同时询问国家大事。
李福与诸葛亮谈话完毕,辞别而去,几天之后又回来。
诸葛亮说:“我知道您回来的意图,近来你虽然整天与我交谈,但有些事还没有对你交待,所以你又回来听取。你所要问的事蒋琬最适合。”
李福连忙道歉说:“日前确实不曾询问,等到您百年之后,谁可以担负国家重任,所以就又返回。再请问蒋琬之后,谁又可承担重任?”
诸葛亮说:“费祎可以继任。”
李福又问费祎之后谁可接任?
诸葛亮没有回答。
同时,诸葛亮也对各将领交代后事,要杨仪和费祎统领各军撤退。
由魏延、姜维负责断后。
不久,诸葛亮在军营中去世。
而杨仪、姜维按照诸葛亮临终的部署,秘不发丧,整顿军马从容撤退。
司马懿认为诸葛亮已死,率军追击,姜维推出雕刻成诸葛亮模样的木雕并率领大军回返,司马懿看到诸葛亮(木雕),认为诸葛亮装死引诱魏军出击,赶紧飞马撤退,奔行数里,司马懿数次问左右将领:“吾头尚在否?”
众将俱回:“尚在。”
司马懿不敢再追赶。
于是蜀军从容退去,进入斜谷后,才讣告发丧,而此事后来也被百姓为之谚曰:“死诸葛走生仲达”,司马懿听闻蜀军在斜谷发丧后自嘲道:“吾便料生,不便料死故也。”
其后,司马懿视察蜀军遗留的营寨,感叹说:“诸葛亮真是天下奇才。”
而我,在诸葛亮发丧之后,将诸葛亮尸体带往夫妻空间,消耗了500个功德分,将他复活。