诸葛亮勤勉治理蜀国,东西两川,夜不闭户,路不拾遗,加上连年丰收,军备充足。建兴三年,益州派人来报:“蛮王孟获率十万大兵进犯,建宁太守雍闿勾结蛮王,牂牁太守朱褒投降,只有永昌太守王伉还在率领军民抵抗。”孔明就让赵云撤军,安排马超领兵防魏,李严领兵防吴,亲自率领人马征南。孔明点了蒋琬、费祎、董厥、樊建等文官随军参谋,令赵云、魏延为大将,王平、张翼为副将,带领五十万大军望益州进发。路上,遇见关羽的小儿子关索。孔明就让他打先锋,一同征南。
雍闿听说孔明亲征,就与高定、朱褒兵分三路迎敌。高定派鄂焕为先锋,迎击蜀兵。魏延见了鄂焕,战不几回合,诈败而逃。鄂焕追不上几里,张翼、王平截断他的后路,魏延转身杀回,活捉了鄂焕。孔明亲自为他松绑,赏给他酒肉,把他放回。鄂焕见到高定,说了孔明如何仁德。雍闿赶来,认为那是孔明的反间计,想挑拨三人的关系。雍闿、高定兵分两路进攻蜀营,中了埋伏,许多军人被俘虏。孔明说:“凡是高定的兵都免死,雍闿的兵都杀死。”雍闿的兵都自称是高定的兵,孔明就放了他们。士兵被放回,见了高定,都说孔明如何好,雍闿如何出卖他们。高定心中狐疑,派人去打探消息,被蜀兵捉去。
孔明假装把探子当成雍闿的人,指责雍闿不送高定、朱褒二人的人头。探子回去一说,高定设计,宴请雍闿。雍闿听到士兵说知孔明优待高定的人,不敢去。高定就夜间偷袭雍闿,雍闿的士兵反而帮助高定去攻击他。他只好逃走,被鄂焕截住杀死。高定拿雍闿的头献给孔明,孔明让他再去杀死朱褒,才能证明他是真投降。高定就带着鄂焕进攻朱褒,把朱褒杀死,孔明接受高定投降,封他为益州太守,总理三郡。孔明来到永昌,太守王伉告诉他全靠吕凯才守住了永昌城。孔明请来吕凯,吕凯献上蛮方地图,孔明就让他当向导官,随军南征。队伍正在行进,马谡奉旨前来犒劳大军。孔明见他穿孝,得知马良病故。随后,孔明问马谡对平蛮有什么高见。马谡指出,最好的办法是采用攻心战术。孔明认为这个战术正合他的心意,就留马谡为参军。
孟获得知孔明已智降雍闿等三路反将,就命第一洞元帅金环三结、第二洞元帅董荼那、第三洞元帅阿会喃各领兵五万,分三路迎敌。孔明调兵遣将,偏偏不用赵云、魏延,理由是两人已过中年,又不识地理,怕他们出意外。于是两人私下商量,捉住几个蛮兵,让他们带路。两人连夜进兵,四更天来到蛮寨,冲杀进去。金环三结慌忙迎敌,被赵云一枪刺死,又分兵攻击另外二寨。魏延进攻董荼那寨,王平恰巧赶来,前后夹攻,杀得蛮兵大败,只有董荼那逃脱了。赵云来到阿会喃寨,马忠已开始进攻,两下夹攻,只有阿会喃逃脱了。四人刚回营不久,张嶷、张翼分别押解董荼那、阿会喃来到。原来,孔明看了吕凯的地图,预先派二张设下埋伏,故意激怒赵云、魏延去偷袭敌军。孔明摆酒款待了董荼那、阿会喃,好言安慰后,放了二人。接着,他又安排众将明天迎战孟获。孟获得知三路元帅兵败,自领大军迎敌,遇见王平。他见王平的队伍不整,非常瞧不起诸葛亮,派忙牙长去战王平。王平斗了几回合,拨马就逃。孟获追赶二十多里。张嶷、张翼分两路杀来,王平、关索转身再战,把孟获团团包围。孟获突围投锦带山,又被赵云截杀一阵。孟获见无路可逃,只好扔下马翻山而逃。谁知一声鼓响,魏延拦住去路,把孟获活捉,蛮兵都投降了。孔明先好言劝慰了被俘的蛮兵,让他们吃了酒饭,又分发钱粮,放他们回家跟亲人团聚。然后,他问孟获:“你已经被活捉了,服还是不服?”孟获说是因为路险被擒,当然不服。孔明就放他回去,整顿人马,再来一决雌雄。众将对孔明不杀孟获反而放回不理解,孔明说抓他易如反掌,只是难以让他心服,所以放他回去,让他再战,一定要让他心服口服。
孟获收拾残兵,渡过泸水,召来阿会喃、董荼那,把被孔明放回的士兵重新聚集起来,将船都扣在南岸,依山傍崖筑土城防守。蜀兵来到,因为没有船无法过河,天气又炎热难当,孔明就让吕凯选择阴凉地形,扎下两个寨子,让王平、关索与二张各守一寨。这时,马岱押解粮草与解暑药来到,孔明让马岱带领三千兵士,到下游一百五十里水浅处渡泸水。马岱的部队来到沙口,士兵见水浅,许多人脱衣涉水过河。谁知刚走了一半,都倒在了水里。马岱忙将他们救上岸,一个个口鼻流血死了。孔明闻报,忙向当地人请教,当地人告诉他:“夏天泸水有毒,白天天热,毒气更重,凡是涉水的都会中毒而亡。只有等到夜间水冷,毒气轻了,才能乘船筏渡水。”孔明又给马岱五百精兵,让他在夜间偷渡沙口。马岱渡水后领兵守住路口,截获了大量粮草。孟获还在吃喝玩乐,等他得知马岱已偷渡过来,截了粮道,还是没有放在心上,派忙牙长领兵退敌。忙牙长和马岱交手只一个回合就被马岱杀死。蛮兵败回,报告孟获,孟获就派董荼那领兵去战马岱,又派阿会喃领兵守沙口。马岱见董荼那来到,大骂他忘恩负义。他羞愧难当,回见孟获,只说是不敌马岱。孟获已看出他念孔明不杀之恩,无心作战,就重责他一百军棍。董荼那回寨,找来心腹一商量,夜间来到孟获的大寨,见孟获大醉,把他绑了,过河献给了孔明。孔明提审孟获。孟获认为,他们自家人闹内讧,把他抓来,不算孔明有本事,孔明如果放了他,他还会领兵再战。孔明让他看了军容严整的军营和堆积如山的粮草后,再次放了他。他回去后,把董荼那和阿会喃杀了,再找马岱交战。见马岱已收兵渡河,他就和弟弟孟优定计,让孟优领百余名蛮兵,带着犀角、象牙等珍宝,过河来投靠孔明。孔明先向赵云、魏延等将领交代对策,然后才召见孟优。孟优跪拜说:“我哥哥感谢丞相的不杀之恩,派我送来珍宝,慰劳大军。他去银坑山收拾宝物,以进贡天子。”孔明见他带的都是蛮族的勇士,就设酒款待。孟获得知弟弟受到优待,就命令各洞酋长在夜晚二更跟他偷袭蜀营,还夸口说弟弟孟优在里面接应。当夜,孟获点起三万人马,众酋长都带了引火的东西,偷渡泸水,冲入大寨,没想到看到的却是一座空营,只有孟优与众蛮兵醉倒一地。孟获知道中计,救起孟优等人,就要回兵,正遇到赵云、魏延、王平分三路杀来。孟获单人匹马冲出包围,来到泸水岸边,见几十个蛮兵划船来接,慌忙登船,却不想被众军捆翻。原来这些蛮兵是马岱领兵装扮的。
孔明再问孟获服还是不服,他声称这次被俘不是孔明高明,而是孟优贪吃造成的,还要再战。孔明就放了他和所有俘虏。当他渡河回去,发现魏延已经乘机占领了他的老巢,只好领着部下回到银坑洞。他越想越气愤,命人带上珠宝去八番九十三甸借兵。不几天就借来一万牌刀獠丁和数十万大军。孔明接到报告,亲自来到西洱河察看地形。他让军士制作木筏,可是放下水就沉了。当地人告诉他,只有竹筏才能漂起来。他就调三万人马砍伐毛竹,搭起浮桥,大营扎在桥北,桥南也扎下三个营寨,互相呼应。孟获领兵来到,孔明见刀牌獠丁横冲直撞,非常凶猛,就下令关闭寨门,任凭蛮兵辱骂,就是不许出战。数日后,孔明才唤来众将,向他们授予密计,再命马岱等退兵后拆掉浮桥,到下游重搭,让张翼领兵断后。关索保护孔明离去,寨中灯火通明,孟获不知虚实,没敢进攻。次日天亮,孟获占领了三座空营,缴获了许多粮草,他误以为蜀国有事,孔明仓猝撤军,就命蛮兵上山砍竹,准备渡河。夜晚,突然刮起狂风,蜀兵从四面杀来。蛮兵獠丁自相残杀。孟获见大势已去,就带上自家亲信冲杀出去。走了没多远,被赵云截杀一阵。又走了一段,被马岱拦住去路。孟获只带着几十个残兵,逃进山后。刚转过山口,见前面树林中推出一辆小车,孔明端坐在车上,哈哈大笑。孟获大怒,率人向孔明冲杀,忽听一声巨响,连人带马跌进陷坑。孔明招降了诸洞酋长和蛮兵,酒肉相待之后,把他们都释放回家。张翼擒了孟优,来见孔明。孔明责怪了他一番就把他放了。魏延押来孟获,孔明问:“你已经被我抓住了四次,还有什么话可说?”孟获说:“我中了你的诡计,死不瞑目!”孔明让武士把他推出去砍了,他扭头说:“你敢再放我回去,我肯定会报四次被俘之仇!”孔明让左右给他松绑,问他为什么不服,他说孔明是施诡计,所以不服。假如再被活捉,他才服气,永不反叛。孔明又一次放了他。
孟获收拾数千残兵,望南奔去,遇见孟优带兵来迎,二人抱头痛哭。孟优提议,眼下天气炎热,不如到秃龙洞朵思大王那里躲避,蜀兵受不了酷暑,自然会退兵。二人就带领败兵来到秃龙洞,朵思大王把他们迎入洞中,说:“我这里只有两条路,一条是大路,就是大王来的那条路,可以通行人马。只要把路口垒死,孔明就是有百万大军也飞不过来。再一条是小路,路上有许多毒虫蛇蝎,而且还有瘴气,能让人中毒。小路没有其他水源,只有四处泉眼。一处叫哑泉,人喝了不会说话,几天就死了。第二处叫灭泉,水热得如同滚汤,溅到人身上肉就会烂,直到烂死。第三处叫黑泉,人碰到泉水浑身发黑而死。第四处叫柔泉,水比冰还冷,人喝了浑身绵软而死。自古以来此处人迹罕至,鸟兽绝迹,只有汉朝的伏波将军马援到过。蜀兵走这条路来,必死无疑。”孟获放下心来,终日与朵思大王饮宴。孔明正在进军,探子来报,说是孟获躲进秃龙洞不出来,还垒断了大路,因为山势险恶,又有重兵把守,所以无法前进。孔明问吕凯,吕凯也只知道这一条路,蒋琬就劝孔明不如收兵。孔明不想半途而废,就让王平用蛮兵当向导,去寻找小路。王平领人找到一处泉,众军见泉水清甜,争着去喝,喝下后都不会说话了。孔明见山上有一座庙,来到庙前,见是伏波将军马援的庙。他就焚香祷告,求马援保佑。马援的神灵被感动,派山神指点孔明去万安溪求万安隐者,可以解军士所中之毒,也可以驱赶瘴气。次日,孔明备下礼物,让王平带上中毒的军士跟他去万安溪。万安隐者一见来人,就猜知是诸葛亮。二人见过礼,孔明说明来意,隐者就让小童领众军喝了安乐泉水,立即治愈。隐者告诉孔明,蛮洞多毒虫,柳花落入水中,水都有毒,不可饮用,只能挖井取水。他又赠送孔明许多薤叶芸香,每人只要在口中含一片叶子,就可避瘴气。孔明请教隐者姓名,隐者原来是孟获的大哥孟节,因不满弟弟的所作所为,才隐居深山。孔明要保举他为蛮王,被他谢绝。孔明只好拜谢告辞。回到大营,孔明让军士掘地打井,打了二十多丈,还是没见到水。他夜间焚香祈祷,求上天赐水。天亮后,满井都是清泉。蜀军有了水源,就从小路来到秃龙洞,扎下营寨。朵思大王得报,惊叹:“真是神兵!”孟获请朵思支持他与孔明决一死战,朵思就杀牛宰羊,准备下山决战。这时,银冶洞二十一洞主杨锋领二万兵来助战,孟获与朵思就宴请杨锋。杨锋让五个儿子拜见了二位大王,又让蛮姑舞刀助兴。杨锋让两个儿子向孟获、朵思敬酒。二人接了杯,正想喝,杨锋一声令下,两个儿子已把孟获、孟优擒住,杨锋擒住了朵思。杨锋押上三人,献给孔明。孔明重赏了杨锋父子,封了官爵,然后质问孟获到底服不服。孟获说是本洞人自相残害,当然不服,要回故乡银坑山,依据三江之险,再跟孔明决战。孔明放了孟获兄弟与朵思,说:“再被我抓住,我要灭你的九族!”