孟获被诸葛亮第二次释放后,让其弟孟优去蜀营诈降,企图里应外合,偷袭蜀军营寨。此计却早被诸葛亮识破,亮佯装受骗,暗设伏兵,命人灌醉孟优。孟获来劫寨时,遭致大败。孟获匹马而逃,被马岱诱擒,诸葛亮再次将其放回。
孟获回到银坑洞,携带珠宝,向各部求援,借来十万刀牌军,要和蜀军决战。赵云、魏延、马岱等将急于应战,诸葛亮却命蜀军退回营寨,坚守数日。众将不解其意,诸葛亮说:“我三擒孟获而不杀,是想收其心,而不想灭其族也!”三日后,诸葛亮用计引孟获自投罗网,连人带马,掉进陷坑被擒。诸葛亮下令推出斩首,孟获要求再放他回去,重整兵马,报四擒之恨。诸葛亮同意将其松绑,并设宴款待。
孟获回洞与孟优商议对策,孟优主张利用炎热酷暑,退回山阴洞中坚守,蜀军远道而来,禁受不住,久必自退。孟获以为蜀军已深入境内,无处退避,决定往秃龙洞朵思大王处求助。朵思用木石垒断路口,只留一条路给蜀军。这条路十分险恶,多藏蛇蝎,沿路还有四个毒泉,如饮泉水,不死即伤。
蜀军顶着烈日行进,王平和士兵误饮毒泉水,哑不能言。诸葛亮发现此处鸟雀无踪、走兽无影,必是死地,传令三军将士:“不得饮水,不得入林。”诸葛亮亲自走访,终于寻得隐避此处的孟获之兄孟节。他对孟获不从王化很是气愤,帮助蜀军将士解了泉水之毒,并指点蜀军如何度过绝地,解除了三军危难。
银冶洞主杨锋,因不满孟获继续对抗蜀军,与其五子率兵三万,诈称愿助孟获。孟获甚喜,设宴相待,却被杨锋擒于席上,送交诸葛亮。孟获仍不服,诸葛亮又放他回去。
诸葛亮五擒五纵孟获之后,攻下三江城,直逼梁都洞银坑山。孟获之妻祝融夫人见情况危急,亲自在银坑山与蜀军交锋,擒了张嶷和马忠两员蜀将。诸葛亮派赵云、魏延将祝融夫人擒获,换回张、马二将。次日,孟获请八纳洞主木鹿大王前来助阵,放出猛兽,赵云、魏延无法抵挡,只得撤兵。二将向诸葛亮请罪,诸葛亮微笑道:“不怪你等,我在隆中之时,就知南兵有驱兽之法,此次南征已备下破此阵之物,明日待我亲去迎战。”
诸葛亮乘车督战,待南兵驱赶野兽扑来,一挥羽扇,掌车军士打开红油柜车,露出十个木制假兽。军士用火将假兽腹下火线点燃,假兽口吐火焰,鼻冒黑烟,直向南兵冲去,真兽却不敢前进,惊而转向南兵阵中冲去。南兵大乱,木鹿大王死于乱军之中,蜀军乘胜夺占了银坑山。
孟获无奈,令内弟带来洞主诈降,又被诸葛亮识破,孟获第六次被擒,因其心仍不服,诸葛亮再次放他回去。
孟获又请来乌戈国王兀突骨,率三万藤甲军在桃花渡口下寨,以待蜀军。此藤甲渡江不沉、经水不沉,刀箭皆不能入。诸葛亮决定用火攻,他派赵云去盘蛇谷准备柴草,令魏延在半月内连输十五阵、弃七个营寨,以此诱敌深入,终于火烧了藤甲军。赵云又将祝融夫人和带来洞主等一并擒住,孟获单骑突围,被马岱生擒。
孟获以为此次被擒必死无疑,未料诸葛亮又令马谡前来放他们回去,并备美酒送行。七擒七纵自古未闻,孟获深感羞愧,至此心服口服,又见蜀军送来稻种、干粮、马匹,深为感动,他率众人向诸葛亮请罪,表示:“丞相天威,南人永不复反矣!”
诸葛亮平定南方后,路经泸水,风涛大作,军不能渡。亮询问当地百姓后,制作馒头,以代人首,临江祭奠。
孟获回寨后,献上南中兵民、牲畜、土地表册。诸葛亮抚慰孟获,将表册交还与他,令他永为南王。下令退军。
建兴四年(公元226年),诸葛亮班师回朝,闻魏文帝曹丕病故,曹叡继位,封司马懿为骠骑大将军,总督雍、凉兵马,深以为患。他用参军马谡之反间计,派人往洛阳散布流言,称司马懿欲图谋反。曹叡素怀疑忌,又见司马带兵迎驾,遂削去其兵权,罢归乡里,命曹休接替总督职务。
诸葛亮见司马懿遭贬,欲亲自北伐,恢复中原,连夜上《出师表》,请求刘禅降旨,兴兵伐魏。
建兴五年(公元227年)春三月,诸葛亮率领大军三十万,出师北伐,赵云、邓芝为先锋。曹叡得报大惊,派驸马夏侯楙为大都督,领关西诸路兵马二十五万抵挡蜀军。魏延认为夏侯楙懦弱无谋,不足为虑,请求领五千精兵出子午谷奇袭长安。诸葛亮认为此计不够稳妥,未予采纳。
蜀军从陇右大路进兵,魏军先锋韩德率四子取路凤鸣山迎战,被赵云一一杀败。夏侯楙按参军程武之计,诱赵云入伏,将赵云重重包围。此时,诸葛亮早已派张苞、关兴前来接应,赵云率兵将杀得魏兵溃不成军。夏侯楙逃向南安郡,诸葛亮决定用调虎离山之计智取。他一面佯攻南安,一面派一军士假扮魏将裴绪向安定太守崔谅求援,崔谅信以为真,率兵前往救援。
安定太守崔谅率兵去救夏侯楙,不想被诸葛亮擒获。诸葛亮随机应变,杀死崔谅、杨陵,生擒夏侯楙。
天水太守马遵也中计,准备出兵,却为中郎将姜维识破,将计就计,打败了前来取城的赵云。诸葛亮亲自来到天水关,也遭姜维夜袭。这使诸葛亮震惊,他发现姜维作战指挥若定,用兵足智多谋,是个将才,甚为喜爱;而此时五虎上将仅剩赵云一人,且已白发如霜,自己也年将半百,尚未找到继承事业之人,于是他决定用计智收姜维。
诸葛亮知姜维至孝,便派人先去冀城将其母接来,然后命魏延佯攻冀县。姜维为保老母,即向马遵请兵去救冀城。
诸葛亮一面将被俘的夏侯楙放回天水,一面散布流言,称姜维降蜀;又命人假扮姜维,夜攻天水,使夏侯楙和马遵以为姜维果真降蜀。然后,诸葛亮亲自领兵攻冀县,姜维兵败,逃往天水,城门紧闭,姜维急呼开门,马遵疑其赚城,乱箭射之,姜维走投无路,正欲自刎,此时,诸葛亮带姜母来到身边劝降,姜维终于归降诸葛亮。
诸葛亮收姜维后,姜维献计,助亮连克天水、上邽;诸葛亮后又在渭水之滨骂死王朗,蜀军威名大震。诸葛亮兵出祁山,军临渭水,直逼长安。
诸葛亮骂死王朗,曹真料定蜀军必乘魏军治丧之际夤夜来袭,加之大将郭淮献策,于是连夜分兵四路偷袭蜀营。不料反中蜀军埋伏,一场混战。败退的四路魏军因天黑难辨,互相误认为敌,酿成自相残杀的败局。
曹真不得已上表求救。曹叡和群臣商议,太傅钟繇保举司马懿可退蜀兵。曹叡急降诏复司马懿骠骑大将军职,加封平西都督,起南阳诸路军马,以退蜀军。
镇守永安的李严得知后,派儿子李丰到祁山向诸葛亮报信。
孟达昔日因不救关羽而降魏,得知诸葛亮率军北伐,想叛魏归蜀,攻取洛阳。他去信告知诸葛亮:已约上庸太守申耽、金城太守申仪汇合三路兵马,就地举事,以助丞相。然而申耽、申仪兄弟明许举事,暗中却与孟达心腹李辅合谋,派人赴宛城密报司马懿。司马懿得报,当机立断,决定先擒孟达,后奏天子。他立即调集军马,派参军梁畿星夜赶往新城,命孟达准备出征,以稳住孟达,使其不疑;随后发兵,昼夜兼程,包围新城。
诸葛亮接孟达信后,曾修书提醒,要其小心从事,提防司马懿,不可轻信他人。而孟达以为宛城远离洛阳八百里,司马懿如知他举事,需表奏魏主,往返月余方可出兵,不以为意。正欲举事之际,司马懿大军已至,孟达被围,只得闭关坚守。申耽、申仪佯作救援,诱孟达开城,李辅等乘机占领城楼,孟达前后受敌,措手不及,被杀。申耽、申仪两兄弟也被司马懿诛杀。
司马懿平定孟达的反叛,去长安禀报曹叡。曹叡得知详情,倍加赞赏,封司马懿为都督,以大将张郃为先锋,出关破蜀。
诸葛亮知孟达被杀,料司马出关,必取街亭。因街亭为汉中咽喉要地,拟派将镇守。参军马谡请令,并在军前立下军令状:“若失街亭,乞斩全家!”临行,诸葛亮再三叮嘱:街亭虽小,关系重大,是我军粮道,绝不可失,要当道扎营。又命王平相助,共守街亭。