諸葛亮復吳平定華南後,準備北伐曹魏。
蜀漢建興六年(公元228年)春,第壹次北伐使趙雲等人疑兵,從顧頡(今陜西省眉縣南)假扮進攻,以吸引魏軍,我率領主力攻祁山(今甘肅省西和縣祁山堡),隴右天水、南安、安定三縣相繼叛魏降蜀,還制服了姜維,引起關中大地震。但馬謖違背諸葛亮的部署,被張合擊敗,丟掉了街亭。趙雲等軍也不利,諸葛亮只好退回漢中。不久,天水、南安、安定三縣造反,附魏。
第二次北伐是在同年冬天。諸葛亮乘魯迅在石婷打敗曹秀之機,出師散關,包圍陳倉(今陜西寶雞西南),攻打二十多天。當魏的援軍趕到時,他不得不返回漢中。
第三次北伐是在建興七年,梁攻打武都(今甘肅成縣)和(今甘肅文縣西北),擊潰魏援軍,占領這兩個縣,留守,自己率兵回李朝。次年,魏軍攻漢中,諸葛亮加強防守,並加派援軍。由於持續的大雨,子午谷和顧頡等道路被封鎖,魏軍撤退。
第四次北伐是在建興九年。蜀軍包圍祁山,魏軍總司令司馬懿接應。諸葛亮準備決戰。司馬懿知道蜀軍路途遙遠,口糧不多,就堅守,不肯出征。諸葛亮試圖通過撤軍來引誘敵人,但司馬懿在追擊時非常謹慎。蜀軍壹停,他就紮營,舉火。這時,李延假傳聖旨,說要撤軍,蜀軍糧草已盡,諸葛亮只好調兵遣將,在回家的路上埋伏殺死了魏國名將張合。
第五次北伐是在十二年春天。諸葛亮率領十萬大軍出斜谷口,到達鄢縣,在渭水南岸的五丈原紮營。司馬懿也設營阻止他與蜀軍作戰。知道蜀軍路途遙遠,糧草運輸困難,想把蜀軍拖下去。諸葛亮也準備在渭水分兵,做好長期作戰的打算。諸葛亮在這次入侵之前,已經和孫權達成協議,要同時攻打魏。五月,吳軍十萬大軍攻魏,但大敗,退守江東,蜀軍只好單方面對付魏軍。八月,諸葛亮積勞成疾,病情越來越重,不久就去世了。
他死後,姜維等人遵從他的旨意,暗中不肯發喪,全軍退入斜谷。
諸葛亮五次北伐,實際出兵祁山只有兩次;還有壹次,魏軍攻漢中,不是諸葛亮。壹言以蔽之,後人說是“六出岐山”。