攻城戰,兵法講究的是圍三缺一,這樣給了守軍以逃亡的退路,守軍一般來說就未必會拼死抵抗。王復臣憂心忡忡,奈何劉文秀信心十足,說服不了主帥改變心意,也就只得依令而行。
十月十一日黎明,劉文秀揮軍攻城,數萬明軍“蔽山而下,炮聲震天”,“南自江岸,北至沙溝子,橫列十五里,前列戰象,次用火炮、鳥銃、挨牌、扁刀、弓箭、長槍,層疊里許,蜂擁攻城”。
明軍的猛烈進攻給予了守城清軍以極大的壓力,李國英早在數日前觀察到明軍的恢弘氣勢,便連忙讓麾下的綠營兵換上了八旗軍的旗幟。如此,一來是為守軍平添信心,二來則是震懾城外的明軍,然而尤是如此,明軍的猛烈攻勢卻還是讓守軍難以招架,幾次險些被明軍攻上城墻。
苦苦支撐到了辰時,攻城戰已入白熱化,守軍漸漸難以支撐,城破只在頃刻。值此時,吳三桂親率本部兵馬開拱極門出城,不管旁人,直攻張先璧所部。
張先璧是云南人,崇禎朝應募圍剿流寇,所部號滇奇營,頗為能戰。清軍南下,湖廣淪為戰場,張先璧與劉承胤相爭,盲目擴軍,將原本的三千兵馬一口氣擴充到五、六萬之眾,戰斗力反倒是被那些窳農叛仆沖淡。后隨何騰蛟,至何騰蛟身死,張先璧據鎮沅州,奪民田以耕,日與當地苗民相仇殺,日益疲。
這支部隊兵員不少,但卻是四川明軍中戰斗力最差的一部。吳三桂征戰多年,戰斗經驗之豐富絕非尋常武將所能夠比擬的,早在數日前,居高臨下就已經看明白了明軍各部的情狀,為此定下戰術,由李國英和李國翰死守城池,堅持到辰時,攻城戰進入到白熱化后再由他親領本部兵馬出擊,猛攻明軍這唯一的弱點。
不出吳三桂意料之外,面對曾經的關寧鐵騎,張先璧所部抵擋不住,紛紛逃竄,敗兵被那些騎兵驅趕著將王復臣等部明軍的陣型沖得亂成了一團。
城外明軍大亂,清軍趁勢出城猛攻,至中午時明軍已全線崩潰。如此,劉文秀只能命令全軍后撤,奈何張先璧之弟張先軫在慌亂之下砍斷了浮橋,致使大批將士無法過江,被清軍追殺或落水而死。
保寧慘敗,明軍進取全川的戰略未能達成不說,包括滅虜將軍王復臣、總兵姚之貞、張先軫、王繼業、楊春普在內的三萬余明軍被清軍擒殺,損失戰象三頭、馬騾二千三百余匹,就連劉文秀的撫南王金印也被清軍繳獲。而作為這場戰役的勝利者,吳三桂于險勝之余,也不由得嘆息道:“生平未嘗見如此勁敵,特欠一著耳。”
損失大軍過半,劉文秀只得帶著殘兵敗將逃回貴州,將四川的大好局面拱手相送。奈何,吳三桂的感嘆并沒有為他爭取什么太好的待遇,孫可望聞訊大怒,下令解除劉文秀的兵權,發回昆明閑居,而率先被清軍擊潰,且其弟砍斷了浮橋導致明軍損失大增的張先璧則被孫可望輪棍打死。
四川局面一度好轉,若劉文秀能深根固本,憑保寧周邊地形限制清軍的同時恢復四川民生,便可立于不敗之地。奈何,急功近利,結果卻在一場慘敗之后導致大局急轉直下,徒嘆奈何。
永歷六年,西南明軍的大反攻,按照分工,乃是由駕前軍坐鎮貴州,以東路軍出湖廣,下廣西,憑北路軍恢復四川。