朱由榔自窜奔南宁后,湖广各省,已为清朝所有,清廷封孔有德为定南王,镇守广西,耿仲明为靖南王,尚可喜为平南王,镇守广东。旋耿仲明死,其子耿继茂袭爵,镇守如旧。朱由榔眼见势日渐衰,不得已求救于大西军的孙可望。
孙可望原名孙可旺,公元1630年(明崇祯三年),张献忠在陕北起义,出身贫苦的孙可望参加义军,被张献忠收为养子,很受张献忠器重,为张献忠四个养子中之长子。张献忠在川北牺牲后,孙可望与李定国等率大西军余部南下攻占云贵一带,坚持抗清。后改投永历政权,但又以武力挟制永历朝廷。
公元1651年(清顺治八年、明永历五年)初,朱由榔派使臣前往贵州,封孙可望为冀王,但孙可望不受。李定国等劝孙可望仍派杨畏知与明谈判,孙虽然表面答应,暗地却派出精兵赴南宁,击杀南明大学士三十人,逼迫朱由榔改封他为秦王。朱由榔自从奔窜南宁后,朝不及夕,只得依靠孙可望这唯一的一支力量了。没奈何再遣钦使,加封其为秦王,孙可望乃令部将到南宁迎驾。孙可望派人将永历帝接到贵州安龙所,改名安龙府,朱由榔被孙可望以武力胁迫到安龙府居住。孙可望答应每年向永历帝送钱粮,以供皇室开销,而永历帝允许孙可望今后的大小战事,可以先斩后奏。
留在云南的李定国,为了“联明抗清”,继续实行政治和经济改革,减轻百姓的负担,使滇南出现一定的安定局面。他终日操练兵马,制造盔甲,训练象队,一年内练就精兵三万。还举行了生童考试,对考中秀才者,发给赏钱三百串,鼓励大家好好读书,若以后恢复江山,就让他们去做官。
公元1652年(清顺治九年、明永历六年)春,清廷命定南王孔有德由桂林出河池,进攻贵州,命吴三桂由嘉定(四川乐山)出叙州(四川宜宾)进攻川南。清廷的目的是要用两路夹击之策,实现对大西军抗清基地的包围。
面对紧迫局势,李定国给孙可望写信,要求出兵湖广,粉碎清兵围剿。孙可望表示同意,决定大西军兵分两路出击,北路军以刘文秀为主将,白文选、王复臣为副将,进攻四川;东路军以李定国为主将,马进忠、冯双礼为副将,进攻湖南。孙可望则统率”驾前军”留守滇黔,大西军从此开始与清军主力正面交锋。
三月,李定国率步骑八万和五十头战象出征。临行前订约法五条:不杀人、不奸淫、不抢财货、不宰耕牛、不放火,有力地保证了军纪和部队战斗力。五月,北路军连克沅(湖南芷江)、靖(湖南靖县)、武岗诸州。镇守宝庆(湖南邵阳)的清将沈永忠急忙向孔有德告急,并派总兵张国柱领兵八千名往援,在靖州陷入重围。经过短暂的交战,清军大败,孔有德从桂林分兵救援。李定国抢在援敌之前,从枫木岭渡江直取宝庆,消灭清军五千,张国柱率残部于二十二日踉跄奔回。沈永忠求援无望,被迫带着麾下自宝庆北遁,六月二日退至省会长沙。
六月,李定国出兵祁阳,准备夺取广西的门户全州,消灭桂林孔有德。他兵分三路,由冯双礼率左路取全州,张胜率右路攻严关(广西兴安县严关乡),自己亲率一路攻桂林外围据点,然后三路合攻桂林。在桂林之役中,大西军作战勇猛顽强,速战速决。左路出奇制胜,很快攻克全州,李定国当机立断,命令部队勿入全州,与自己合兵推进,直趋严关。这个决策为取得桂林大捷打下了基础。
严关位于桂林以北,抢占它便扼住了桂林的通道。六月三十日,清军来夺严关,大西军奋勇抵抗,死者不计其数。七月初一,孔有德又率精锐来攻,只见两军还没有交战,大西军的战象就扑来,清军马匹都受惊了,孔有德大败而逃,大西军趁势掩杀而去。大西军乘胜追至桂林,将城包围。七月初四,大西军登云梯攻城,孔有德额头已中一箭,他自知走投无路,偕其妻痛哭一场,便令其妻妾上吊自杀,自己在王府纵火,北向再拜,自刎而死。其子孔廷训逃跑过程中被明军俘获,仅有一女孔四贞逃脱。
顺治帝听说孔有德死讯后,赐谥号武壮,两年后孔四贞奉其父遗骸还京,顺治帝命三品以上大臣郊迎,给予厚葬。孔有德之子孔廷训在顺治十五年(1659年)被李定国下令处斩,孔有德绝嗣,女儿孔四贞则被孝庄太后收为养女。
桂林大捷后,广西全境很快被收复,有些地区的百姓,不等大西军到,便自动将清军驱逐,李定国下令不要乱杀无辜,先安置百姓。明将胡一青、赵印选、马宝等相继归顺李定国。为此,李定国在桂林七星岩摆下酒宴,庆祝胜利。他对明兵部尚书刘远生说:“文、张诸公(指文天祥、张世杰)其精忠浩气,固足以光昭青史,为天地生色,然吾侪之对于国家,窃不愿有此结果也。”表达了他决心收复被清军占领的土地,恢复明朝的志向。
李定国此时声威大震,捷报传到贵阳后,孙可望大为不快,表面上奏请封李定国为西宁王,背地里却令李定国副手冯双礼对其暗中监视,另派一支人马尾随其后,妄图借机除掉李定国。
八月,李定国以明巡抚徐天佑守桂林,又率军北上直捣湖南,连取全州、永州(湖南零陵)。九月,李定国进攻衡州(湖南衡阳),沈永忠再次弃城逃跑,长沙巡抚金廷献沿长沙逃至郫州,监司以下官员都逃遁一空,清军还没有到来,整个湖南的清军却都跑光了。李定国在衡州安设官员,休整部队,准备继续北进。
同时,李定国又命令马宝率广西明军东取阳山、连州,占领广东西北部,派马进忠、冯双礼北取长沙,攻占常德、岳州,命高文贵东进江西,连下永新、安福、永宁、龙泉,围攻赣西重镇吉安。李定国自七月出兵以来收复两个州,十六个郡,大致有三千里的土地重新回到南明政权手里。取得了史称“湘桂大捷”的胜利。