尽管永历帝和李定国为了使孙可望回心转意做了不少努力和工作,但以失败而告终。孙可望一意孤行,不可逆转。孙可望执意武力解决出于下述考虑:首先,在西南的南明军队中孙可望的兵力最强,不仅贵州全省在他控制之下,在云南留守的将领中也有不少效忠于他。其次,孙可望以国主的名义总览永历朝廷政务,早已习惯于君临一切。而且,他思想深处还存在着一种自己本应位登九五至尊的思想,因为他是大西皇帝张献忠的当然继承人,在1647年进入云南后得到众多实力派将军的支持登上了“盟主”地位;联明抗清后利用永历帝的招牌收编南明残兵溃将进一步提高了自己的声誉。在当了几年的实际执政者之后,此时却要他交出权力,听命于由李定国,刘文秀拥戴的永历帝,而且他自知由于自己过去的所作所为,永历帝,李定国乃至刘文秀对他都存在一定程度的隔阂。在反复权衡得失之后,孙可望终于在周围一些亲信的鼓励和策划下,下定决心诉诸武力,消灭昆明的异己力量。谄附孙可望的文臣方于宣为他出谋划策说:“今皇上在滇,定国辅之,人心渐属于彼。臣意请国主早正大号,封拜文武世爵,则人心自定矣。”于是,孙可望果然在1657年(永历十一年,顺治十四年)二月,“封马进忠嘉定王,冯双礼兴安王,张虎东昌侯,余大封有差”。虽然没有先正“大号”,但封王之举已表明他鼓舞诸将打下昆明,为推翻永历朝廷,自己正式登基称帝做准备了。
在公开举兵之前,双方都做了集结兵力的部署。李定国旧属龙骧营总兵祁三升当时驻扎在四川,孙可望为了抓到这只军队,命令祁三升率部赴贵州遵义镇守。李定国也下令调祁三升赴滇。祁三升对部将说:“国主,西府,旧主义均。今西府尊永历为民主,名正言顺,我等亦有所依,当尊西府之调为正。”诸将都表示赞成,于是祁三升拒绝接受孙可望使者传达的命令,率部向云南进发。孙可望闻讯大怒,派兵追击,祁三升且战且走,辎重丢失殆尽,终于在1656年十月到达昆明。永历帝深表嘉许,封为咸宁伯。孙可望还派程万里到昆明,要求把秦王旧标人马遣还贵州。永历帝当即同意,提供夫役送出。
1657年(永历十一年,顺治十四年)八月初一日,孙可望在贵阳誓师,亲自统帅十四万兵马向云南进发,以白文选为征逆招讨大将军,由冯双礼留镇贵阳。八月十八日,孙可望兵渡盘江,滇中震动。李定国同刘文秀商议后,决定二人亲统主力阻击孙可望军入滇。永历帝下诏“特加晋王得专征伐,赐尚方剑,便宜行事,挂招讨印;蜀王作副招讨”,负全权指挥之责。为了防止孙可望亲信王尚礼在昆明发动內变,除了把他部下的兵马分拨各营随同出征,还留下李定国中军护卫靳统武会同黔国公沐天波暗中防范。在此之前,孙可望另一亲信将领王自奇因醉后误杀李定国营将,担心李定国兴师问罪,率领所部渡过澜沧江西奔永昌府(今保山),由于地处僻远,消息不灵,无法同孙可望配合行动。九月十五日,双方军队相遇于云南曲靖交水,分别距离十里下营。孙可望军十余万人列营三十六座;李定国,刘文秀军约三万人布列三营,士卒看见孙可望军兵多势众,颇有惧色。十八日,孙可望召见张胜,说:“尔可率领武大定,马宝选铁骑七千,连夜走小路至云南城下暗袭之。城中有王尚礼,龚彝等为内应。尔一入城,则定国,文秀等知家口已失,不战而走矣。”
孙可望自以为计划周全,万无一失,却没想到他这次出兵师出无名,不少部下将领心怀二意。大将白文选与李定国,刘文秀长期同甘共苦,不愿自相火并,其他一些由南明军队改编的旧将马进忠,马惟兴,马宝等人都心向永历。于是,作为前线总指挥的白文选私下同马惟兴,马宝约定阵前反戈,白文选还以视察前线为名亲自驰入李定国,刘文秀营中通风报信。奉命偷袭昆明的马宝也写了密信差心腹送给李定国。
李定国收到白文选和马宝的密报,当机立断决定次日抓紧决战。十九日天未亮,李定国,刘文秀兵马开营出战,孙可望挥军来敌,双方交战于交水三岔口。对阵之初,刘文秀部将李本高马蹶被杀,前锋失利。孙可望立于高阜观战,见已挫李定国锐气,即命诸营乘胜前进。这时白文选忽然亲自率领五千铁骑冲入马惟兴营中,两军联合抄到孙可望阵后,连破数营;李定国,刘文秀见势趁机挥军冲杀,孙可望军大乱,将士大呼:“迎晋王!迎晋王!”孙可望十几万大军顷刻土崩瓦解。孙可望见形势陡变,心中大惊,仓皇失措,在少数兵马保护下,狼狈东窜。过安顺时,马进忠不仅“闭门不纳”,还派出军队追击,孙可望匆忙逃亡贵阳。(待续)