顺治九年(明永历六年,1652)春,清廷命定南王孔有德由桂林出河池,进攻贵州,命吴三桂由嘉定(四川乐山)出叙州(四川宜昌)进攻川南。清廷的目的是要用两路夹击之策,实现对大西军抗清基地的包围。面对紧迫局势,李定国给孙可望写信,要求出兵湖广,粉碎清兵围剿。孙可望表示同意,决定大西军兵分两路出击,北路军以刘文秀为主将,白文选、王复臣为副将,进攻四川;东路军以李定国为主将,马进忠、冯双礼为副将,进攻湖南。孙可望则统率“驾前军”留守滇黔,大西军从此开始与清军主力正面交锋。

三月,李定国率步骑八万和五十头战象出征。临行前订“兵行五要:一不杀人,二不放火,三不奸淫,四不宰耕牛,五不抢财货”,有力地保证了军纪和部队战斗力。五月,北路军连克沅(湖南芷江)、靖(湖南靖县)、武岗诸州。镇守宝庆(湖南邵阳)的清将沈永忠急忙向孔有德告急,孔有德从桂林分兵救援。李定国抢在援敌之前,从枫木岭渡江直取宝庆,消灭清军五千。

六月,李定国出兵祁阳,准备夺取广西的门户全州,消灭桂林孔有德。他兵分三路,由冯双礼率左路取全州,张胜率右路攻严关(广西兴安县严关乡),自己亲率一路攻桂林外围据点,然后三路合攻桂林。在桂林之役中,大西军发扬了勇猛顽强,速战速决的传统战术。左路出奇制胜,很快攻克全州,李定国当机立断,命令部队勿入全州,与自己合兵推进,直趋严关。这个英明的决策为取得桂林大捷打下了基础。

严关位于桂林以北,抢占它便扼住了桂林的通道。六月三十日,清军来夺严关,大西军奋勇抵抗,“象亦突阵,王师大奔,死亡不可胜计,横尸遍野”。七月初一,孔有德又率精锐来攻,只见“兵未交而象阵前列,劲卒山拥,尘沙蔽日,马闻象鸣皆颠厥,有德众遂奔,掩杀大败”,只有孔有德一人逃回桂林城。大西军乘胜追至桂林,将城包围。七月初四,大西军登云梯攻城,孔有德额头已中一箭,他自知走投无路,便“聚其宝玩于一室,手刃爱姬,遂闭户,自焚死”。仅有一女孔四贞逃脱。

桂林大捷后,广西全境很快被收复,有些地区的百姓,不等大西军到,便自动将清军驱逐,李定国“下令无妄杀,抚安孑遗之黎庶”,明将胡一青、赵印选、马宝等相继归顺李定国。为此,李定国在桂林七星岩摆下酒宴,庆祝胜利。他对明兵部尚书刘远生说:“文、张诸公(指文天祥、张世杰)其精忠浩气,固足以光昭青史,为天地生色,然吾侪之对于国家,窃不愿有此结果也。”表达了他决心收复被清军占领的土地,恢复明朝的志向。

八月,李定国以明巡抚徐天佑守桂林,又率军北上直捣湖南,连取全州、永州(湖南零陵)。九月,李定国进攻衡州(湖南衡阳),守将沈永忠再次弃城逃跑,长沙巡抚金廷献沿长沙逃至郫州,监司以下官员都逃遁一空,“兵锋未至,千里无人”。李定国在衡州安设官员,休整部队,准备继续北进。

同时,李定国又命令马宝率广西明军东取阳山、连州,占领广东西北部,派马进忠、冯双礼北取长沙,攻占常德、岳州,命高文贵东进江西,连下永新、安福、永宁、龙泉,围攻赣西重镇吉安。李定国“兵出凡七月,复郡十六,州二,辟地将三千里”。取得了史称湘桂大捷的胜利。

李定国的部队不仅战斗力强,而且纪律严明。明遗老李寄描述说:“定国兵律极严,驻师半载(指在长沙),居民不知有兵,入市输买。定国所将半为罗倮傜佬,虽其士官极难钤束,何定国御之有法也。”

清军在湖广接连失利,使清政府大为震惊,急忙命洪承畴经略湖广、云贵、两广,趋长沙。十一月,清廷又派敬谨亲王尼堪任定远大将军,率领三贝勒、八固山共十五万精兵朝长沙扑来。面对强敌,李定国进行了周密的布署:大西军暂退出长沙,引诱清兵渡湘江,将冯双礼、马进忠部埋伏白杲市,待清兵过衡山,李定国从蒸水(衡山西南)正面攻击,冯、马二将背后出击,两军相夹,合歼尼堪。但这一计划却被冯双礼透露给孙可望,孙可望“不欲定国之成功,而思陷之败死”。密令冯双礼退出伏击,马进忠见状也撤离了战场。

十一月十九日,尼堪进抵衡州,李定国在蒸水率军出击,接着转战到城北香草庵、草街,不分胜负,为此李定国准备采用伏击战术。二十四日,双方再战,李定国佯装败退,尼堪紧追不舍,追至演武亭,一声炮响,大西军伏兵四起,团团围住尼堪,李定国手举大刀,将尼堪一劈两半。清军失去主帅,大败而逃。李定国缴获了尼堪的铠甲、绣旗,正准备乘胜追击,才发现冯双礼、马进忠未到,派人侦察说已走湘乡。李定国才知自己是孤军作战,无法扩大战果,只得收兵向武岗转移。衡州战役后,李定国叫人绘制孔有德、尼堪画像,刊布粤楚,“露布告捷”。

桂林、衡州两次大捷,使“清君臣闻警,上下震动,闻定国名,股栗战惧,有弃湘、粤、桂、赣、川、滇、黔七省与帝媾和之议”。李定国出征不足一年,纵横数省,收复湘、桂,击败清军数十万,掀起了继1647年第一次抗清**后的第二次抗清**。黄宗羲赞道:“逮夫李定国桂林、衡阳之战,两蹶名王,天下震动。此万历戊午以来全盛天下所不能有。”