多尔衮在顺治七年十二月死,孔有德在同年十一月便已进入桂林,遇到瞿式耜在城内静候逮捕,从容就义。永历皇帝(永明王,俗称桂王)这时候住在南宁。
二十个月以后,顺治九年(1652年)七月,永历皇帝的大将李定国攻入桂林,孔有德自杀。
这一位李定国,本是陕西延安的人,后加入张献忠的队伍;由于作战勇敢,深得张献忠欢心,与孙可望、艾能奇、刘文秀均被张献忠收为养子。张献忠被豪格杀了以后,李定国与孙可望等人率领若干万残部,离开四川,在顺治四年来到遵义、贵阳,而且拿下云南东部。
永历三年(顺治六年,1649年),在昆明的沐国公沐恩波(沐英的后代)被一个土司沙定洲打败,逃到永昌(云南保山),托人向孙可望求救,孙可望派李定国去。李定国到了昆明,捉住沙定洲,押解给孙可望。孙可望将沙定洲剥皮。
云南巡抚杨畏知劝孙、李等人帮助永历皇帝抗清,孙、李等人接受。永历王封孙可望为公,李定国与刘文秀为侯(艾能奇已死)。
到了永历五年(顺治八年,1651年)二月,孙可望因为桂林已失,瞿式耜已死,便看不起永历皇帝,派兵到南宁,杀了几个反对他的大臣,逼着永历封他为秦王。永历便也索性封了李定国与刘文秀为公。
次年,孙可望又派人把永历劫了,迁至贵州的安隆所(今天的安龙布依族苗族自治县)。从此,永历在事实上作了孙可望的俘虏,但是心中不服。他升李定国为西宁王,刘文秀为南康王,使与孙可望平等并列。
李定国在永历六年(顺治九年,1652年)七月攻下桂林。又在十一月阵斩尼堪于衡州。孙可望召他去沅州会面,李定国不去。
永历暗中派人请李定国来安隆保驾。李定国尚不曾到,孙可望已经派兵至安隆,把永历的大小臣子杀害了十八位。(孙可望自己不在安隆,这时候驻扎贵阳。)
李定国终于在永历十年(顺治十三年,1656年)三月,出孙可望不意,顺利到达安隆,把永历护送到昆明。永历封他为晋王。
次年,孙可望派一位名将白文选作为前锋,自己统率大军,随后进发,开向云南。孙军到了三岔河镇(陆良县东),与李军相遇,白文选倒戈,孙军大败。孙可望回到贵阳,他的部下冯双礼却闭了城门,不开。于是,他逃去长沙,向洪承畴投降。洪承畴此时以清朝大学士的身份,兼任两湖、两广、四川、云贵一共六个省的总督。(洪承畴的官衔算得上“出将入相,位极人臣”:“太保兼太子太师,内翰林国史院大学士,兵部尚书,兼都察院右副都御史,经略湖广、广东、广西、云南、贵州等处地方,总督军务,兼理粮饷”。)
洪承畴见了孙可望,气味相投,相见恨晚,就保了他一本,由清廷封他为“义王”。孙可望感恩图报,把李定国军队的虚实与云南山川的形势和盘托出,告诉了洪承畴。
洪承畴就在永历十二年(顺治十五年,1658年)三月对永历的最后领土云南、贵州,发动三路总攻:调了吴三桂由四川重庆向南,打桐梓、遵义;又调了卓布泰由广西打独山,直趋贵阳;他自己与洛托领了中路军,由湖南打贵州东部的镇远。
这三路兵势如破竹,于九月间在平越会师,继续向昆明前进,也是分兵三路:北路,吴三桂,出七星关(毕节之西);中路,多尼(多铎的儿子),出铁索桥(安顺与镇宁之西南);南路,卓布泰,经由安隆、黄草坝(今日的兴义县城),指向罗平。
永历听到消息,拜李定国为招讨大元帅。李定国命令一个部将吴子圣守住安隆;叫白文选守七星关,抵御吴三桂;自己亲自到贵州的鸡公背(关岭之东南),找多尼决战。
吴子圣守不住安隆,被卓布泰打败。白文选把七星关守得很好,吴三桂却假道水西苗乌撒土司的领域(威宁县东),进了云南。李定国不敢和多尼恋战,赶紧回昆明,保护永历退守永昌(云南保山)。
到了永历十三年(顺治十六年,1659年)的春天,清军占昆明以后,大举进攻永昌。李定国派人把永历护送到腾越,自己到磨盘山迎敌,先设了三重埋伏,然后诈败,杀了极多清军,尸首堆得像墙一般高。李定国自己的部队也伤亡甚重。他的一个爱将窦民望,身上被子弹打穿,还拿着刀突了围才死。
打了这一场恶战以后,李定国去腾越找永历,永历却已经被一个奸臣马吉翔带去缅甸,缴了兵器,依人篱下。
李定国这时的处境,真是叫天不应,于无可奈何之下,把军队开进孟良。孟良的土司欺负他,和他打了一仗,他就索性占了这孟良地方,作为新的根据地。
白文选性急,不等到准备就绪,便跑到缅甸去抢永历,被缅甸的军队吸住。李定国只好也去缅甸,与白文选合军,虽则打了一个胜仗,进抵缅甸的都城阿瓦,但是他们的船却被缅甸人烧了。白文选又被刘文秀的两个旧部(张国用与赵得胜)胁迫着撤兵北去(这时刘文秀已死)。于是李定国也只好撤兵到锡萡,再与白文选合军而守。
吴三桂从木邦的小路赶来,收买白文选的部下,把白文选绑去投降。
李定国退到猛腊,向暹罗与车里借兵,皆碰了钉子。他决定一面密切注意清军的行动,一面等候机会再去缅甸抢回永历。
到了康熙元年,他听到永历已被吴三桂从缅甸带去昆明害死,大哭一顿。这一代英雄终于在六月二十四日,与世长辞。