吴蜀联盟的恢复,内部政局的稳定,使平息叛乱的时机成熟起来。建兴三年(225年)三月,诸葛亮亲率大军南征平叛。诸葛亮进军南中,兵分三路。诸葛亮率西路攻打越的高定元,马忠率东路军攻打的朱褒,李恢率中路军直指益州郡的雍闿。诸葛亮和马忠率领的东西两翼很快打败叛军,先后收复越、牁。然后诸葛亮指挥三路大军会合,集中围攻叛乱中心益州郡。
诸葛亮的军队到达益州郡时,叛军内部发生分裂,雍闿被杀,当地少数民族首领孟获代替雍闿为头领,继续与蜀军对抗。孟获勇猛顽强,在当地少数民族中威信很高。当蜀军即将与孟获交战时,诸葛亮突然下令,对孟获只能生擒,不许伤害。
原来,诸葛亮率军出发时,前来送行的参军马谡曾对他说:"南中恃其险远,不服久矣,虽今日破之,明日复反耳。…夫用兵之道,攻心为上,攻城为下,心战为上,兵战为下,愿公服其心而已。"进入益州后,诸葛亮获悉,孟获虽然作战勇敢,却缺少谋略,估计打败他不成问题。这时,诸葛亮想起马谡的临别赠言,觉得这是一个施行"攻心"战术的良好时机,于是决心从孟获入手,改变南中地区过去经常叛乱的局面,治理好南中。果然,经过一场激战,孟获兵败被捉,事后诸葛亮让军队摆开阵势,让孟获观看,以便观察孟获的态度。诸葛亮一面陪着观看,一面故意问孟获:你看,这样威严的军队你能打得赢吗?孟获很不服气地说:先前我不知虚实,所以被你用计打败。如果再有机会的话,我一定能够打败你们。诸葛亮听了他的话,笑了笑爽快地放他回去,让他整军再战。孟获回去后集合好部众,又来交战,结果又战败被捉。诸葛亮见他还不服气,又放走了他。如此一捉一放,前后七次。孟获逐渐认识到诸葛亮智谋高强,却并不存心与"夷人"为敌。他手下的"夷人"也逐渐弄明真相,不愿再打下去了。当最后诸葛亮又要放他走时,孟获心悦诚服地对他说:"公,天威也,南人不复反矣!"七擒七纵孟获的故事后来被广泛传播。
此后,诸葛亮相继平定南中其他地方,一直打到南边的滇池。每平定一处,诸葛亮都保留原有少数民族的部落组织,留用原有的酋长,对一些有影响的少数民族上层人物还授予高官。诸葛亮的军队纪律严明,禁止烧杀抢掠,注意搞好同当地少数民族的关系。这样,诸葛亮妥善地解决了蜀汉政权和南中地区的关系。
南中平定后,蜀汉后顾之忧解除。诸葛亮于是集中力量,练兵习武,准备大举北伐。北伐曹魏,统一中国,是诸葛亮《隆中对》中的既定目标。荆州丧失后,两路出兵北伐的条件已不具备,但诸葛亮并没放弃北伐的计划。这时北伐,虽然不可能统一曹魏,却能够起到以攻为守的作用。