建兴四年(226年),司马懿47岁,诸葛亮45岁。
魏文帝曹丕死,其子曹叡继位,缺乏统治经验。
诸葛亮抓住有利时机,决定出师北伐。
建兴五年(227年),司马懿48岁,诸葛亮46岁。
诸葛亮率军进驻汉中,顿兵沔阳(今陕西勉县)。
建兴六年(228年)春,司马懿49岁,诸葛亮47岁。
诸葛亮事先扬声走斜谷道取郿,让赵云、邓芝设疑兵吸引曹真重兵,自己率大军攻祁山。
陇右的南安、天水和安定三郡反魏附蜀,关中震响。
魏明帝西镇长安,命张郃率领步骑五万人前往,大破马谡于街亭。
而同时赵云寡不敌众,失利于箕谷。
诸葛亮乃拔西县千余家返回汉中。
第一次北伐失败。
诸葛亮上疏请求自贬三等,蜀后主以诸葛亮为右将军,行丞相事,所总统如前。
同年冬,诸葛亮趁魏兵东下,关中虚弱,趁机北伐。
出兵散关(今SX省宝鸡市西南)围陈仓(今SX省宝鸡市东),为魏将郝昭所拒。
诸葛亮劝降不成,而又粮草不继,不得已退还汉中。
魏将王双来追,被斩。
建兴七年(229年)春,司马懿50岁,诸葛亮48岁。
诸葛亮遣陈式攻武都(今GS省成县周边)、阴平(今GS省文县周边)二郡。
雍州刺史郭淮引兵救之,亮自出至建威(今GS省西和县西),郭淮退,遂得二郡。
建兴八年(230年)秋,司马懿51岁,诸葛亮49岁。
魏军三路进攻汉中,司马懿走西城(今SX省安康市西北),张郃走子午谷,曹真走斜谷。
诸葛亮驻军于城固(今SX省城固县东)、赤坂(今SX省洋县东二十里)。
时大雨三十余天,魏军撤退。
同年,诸葛亮使魏延、吴懿西入羌中,大破魏后将军费曜、雍州刺史郭淮于阳溪(南安郡内,当在今GS省武山西南一带)。
建兴九年(231年)二月,司马懿52岁,诸葛亮50岁。
诸葛亮率大军攻祁山,始以木牛运。
时曹真病重,司马懿都督关中诸将出拒。
诸葛亮割麦于上邽(今GS省天水县)。
司马懿追亮至卤城(今GS省天水市与甘谷之间),掘营自守,有“畏蜀如畏虎”之讥。
同年五月,诸葛亮使魏延、高翔、吴班赴拒,大破司马懿,汉军获甲首三千级,玄铠五千领,角弩三千一百张,于是司马懿退还保营。
《晋书》则记魏军卸甲轻装,日夜兼程,在汉阳与诸葛亮相遇,司马懿派将军牛金率轻骑做饵,诸葛亮退兵至祁山,屯兵卤城,据南北二山,堵水筑围墙。
魏军攻破,大破蜀军,俘获斩首数万。
而陈寿所著《三国志》里,两种说法均无记载。
六月,李严因运粮不济呼诸葛亮还师。
张郃追亮退兵至木门,中箭身亡——此为二出祁山。
建兴十年(232年),司马懿53岁,诸葛亮51岁。
诸葛亮在黄沙休兵劝农,制作木牛流马等,并且练兵讲武,准备再次北伐。
建兴十一年(233年)冬,司马懿54岁,诸葛亮52岁。
诸葛亮派遣诸军运米,集结大军于斜谷口,治斜谷邸阁。
建兴十二年(234年)二月,司马懿55岁,诸葛亮53岁。
诸葛亮经过三年劝农讲武的准备,率大军出斜谷道,据武功五丈原(今SX省岐山南),屯田于渭滨,同时派使臣到东吴,希望孙权能同时攻魏。
四月,蜀军到达郿县,在渭水南岸的五丈原下扎营寨。