正史记载中,诸葛亮从公元228年春至234年冬先后进行了五次北伐,而只有第一次和第四次到达祁山,而不是文学作品中描述的“六出祁山”,正史和文学作品是要区分对待的。
第一次北伐是建兴六年(228年)春。北伐前诸葛亮做了充足的准备,他否决了魏延的“子午谷奇谋”,确立了先攻占陇右的战略,首先他策反了天水,南安,安定三郡,并设疑兵于斜谷,自己率大军攻祁山。后由于马谡未按照诸葛亮出兵前安排,导致咽喉要道街亭被曹魏名将张郃攻破,街亭失守,使蜀军丧失了全部有利形势,三郡得而复失。诸葛亮无奈,引兵退回汉中。
第二次北伐是建兴六年(228年)冬,是诸葛亮为响应东吴而进行的北伐。诸葛亮出散关,包围陈仓,当时陈仓守将郝昭早有防备,蜀军攻打二十多天未破,粮草不济,被迫退军。退军时魏将王双率兵追击,被蜀军击败斩杀。
第三次北伐是建兴七年(229年)春。诸葛亮率兵攻武都、阴平两郡,此两郡原归蜀汉控制,由于街亭失守后被魏军占领。魏将郭淮带兵援救,诸葛亮亲自率军至建威,郭淮撤退,诸葛亮顺利收复两郡。诸葛亮安抚了当地的氐人、羌人,然后留兵据守,自己率军回汉中。
第四次北伐是建兴九年(231年)春。诸葛亮以木牛运粮,包围祁山,司马懿和张郃带兵援救,因李严运粮不继,蜀军终因粮尽退军。退军时司马懿强令张郃追击,张郃追击至木门道,被蜀军射中右膝,伤重病逝。
第五次北伐是建兴十二年(234年)春。诸葛亮率军出武功五丈原,由于司马懿率军在渭水南岸阻击,诸葛亮多次进攻都没有成功,于是决定在五丈原屯田练兵,准备打持久战。当年秋,由于病重诸葛亮在五丈原逝世,蜀军退回汉中,北伐事业从此终止。
五次北伐中,第一次和第五次可称为全面战争,第四次可称为中等规模战争,第二次和第三次可称为小型局部战争。