建安二十五年(220年)曹操病死,其子曹丕代汉称帝,国号魏,史称“曹魏”。次年,刘备在成都称帝,国号汉,史称“蜀汉”。以后孙权也在建业(江苏南京)称帝,国号吴,史称“孙吴”。
孙、刘本来是联盟抗曹,但建安二十四年(219年),孙权乘关羽北伐之机,派吕蒙偷袭荆州,擒杀关羽,破坏了联盟。孙曹暂时联合。蜀章武二年(222年)刘备为夺回荆州和替关羽报仇,不顾一切地大举伐吴,但在夷陵(湖北宜昌市东)被火烧联营,惨败于吴将陆逊,退归白帝城(四川奉节县东)后病死。诸葛亮接受遗命,以丞相兼领益州牧,辅助后主刘禅,立即恢复吴蜀联盟。
此后,他“务农殖谷,闭关息民”,竭力恢复元气。蜀建兴三年(225年),他又兴兵南征,七擒七纵孟获,乎定了南中(今四川南部及云、贵一带)之叛,稳定后方,解除后顾之忧,充实了兵力物力。次年,诸葛亮班师后先移屯江州,然后率诸军北驻汉中屯田积谷,准备全力北伐曹魏。自蜀建兴五年至十二年(227—234年)诸葛亮从汉中六次出师(五攻一守),与曹魏激烈争夺关陇地区,史称“六出祁山”。
出师前,诸葛亮发布了《为后帝伐魏诏》,并亲自给后主刘禅写了著名的《前出师表》,说明现在“南方已定,兵甲已足,当奖率三军,北定中原。兴复汉室,还于旧都”。然后,把队伍部署在阳平待机出征。后来,大家都知道发生了街亭之败,第一次伐魏失利。
蜀建兴六年,曹魏与孙吴发生了战争,诸葛亮见有机可乘,再出散关,围攻陈仓,围攻陈仓20多天,未能攻下,粮食已尽,又听说张合率新援军将到,诸葛亮只得迅速撤兵,回军途中斩杀了前来追击的魏将王双。此即“二出祁山”。
第二年春,诸葛亮三出祁山,派陈式攻取武都、阴平2郡。魏雍州刺史郭淮来救时,诸葛亮亲至建威(甘肃成县),指挥魏延大破郭淮。由于这一胜利,后主刘禅恢复了诸葛亮的丞相职位,魏延也进封南郑侯。以后,诸葛亮在城固筑乐城,在沔阳筑汉城,屯驻蜀军。
蜀建兴八年、魏太和四年(230年),关中魏军统帅曹真认为诸葛亮连年北伐,魏军应主动出击才可扭转被动挨打局面,于是兵分数路,曹真率主力在八月从长安出师,翻越秦岭,走子午道南征汉中;司马懿走汉水,进至丹口,欲与曹真会师南郑;其他各路曹军也分别从褒斜道、阴平道攻向汉中。诸葛亮把蜀军主力集结在城固赤坂一带准备抵抗,并令李严从成都带2万人增援汉中。此时适逢霖雨季节,连下30天大雨,山陡路滑,栈道断绝,行军困难。九月,魏军被迫班师退兵。