崇禎十年(1637年)九月,李自成等人大概是打算到漢中為高迎祥搞周年祭,集結大軍對漢中府城發起攻擊。當時陝西官軍的分工是,巡撫孫傳庭負責陝西東部商洛一帶的徵剿,總督洪承疇則負責徵剿西部。李自成等人攻擊的漢中屬於洪承疇的責任區,於是他派臨洮總兵官曹變蛟前去救援。
曹變蛟自他叔叔曹文詔死後頗受洪承疇重用,而且他不僅升官快,打仗也越來越猛。接到命令後率兵抄近道星馳而去,並趁夜色從雞頭關悄悄進入漢中府城。之所以搞這麼神秘,並不是怕農民軍,而是為了給他們一個驚喜。
九月二十六日,農民軍又要攻城了,但他們卻驚奇地發現死寂的城頭上空無一人。曹變蛟做戲做了全套,一直等到農民軍走到城濠邊,才讓守軍現身用弓箭、石塊等等殺傷性武器招呼他們。
城下的李自成見城上守軍人數大增,知道朝廷的援軍來了,便招呼兄弟們趕緊撤。但是官軍已在城門後擺好了出擊隊形,農民軍剛要撤退,曹變蛟便打開城門帶隊追擊。混戰中,李自成的坐騎被一箭射死,狼狽地「裸身涉水逃去」。
十月初四,逃走的李自成糾集數股農民軍,經漢中寧羌竄入四川廣元。他們之所以選擇南下四川,這要給楊嗣昌的「四正六隅十面網」記一份功勞。當時楊嗣昌的增兵增餉計劃接近完成,他的十面羅網已經在緊鑼密鼓的編織當中,離李自成比較近的有扼守商洛一線的陝西巡撫孫傳庭、扼守鄖襄一線的鄖陽巡撫戴東旻。
所以當時身在漢中的李自成,若往東面去是相當困難的,而且就算拼死衝了過去,等著他的還有安廬巡撫、鳳陽巡撫、河南巡撫、保定巡撫等一大堆巡撫,他唯有南下四川是相對容易的,後來事情的發展也證明了這一點。
李自成等部農民軍進入四川後,相繼攻克昭化、劍州、梓潼等川西三十餘州縣,並在綿州擊殺四川總兵侯良柱,只用半個月就打到了四川省城成都。當時的四川巡撫王維章是個剛到任的新官,完全被打蒙了,稀裡糊塗地背鍋下獄被判了死刑。
好在新任四川總兵羅象乾比較有水平,率大軍發動反攻,迫使李自成等部退回到梓潼。但是這位羅總兵很快被勝利衝昏頭腦,率軍冒進中了李自成的埋伏,結果兵敗身死。這麼一折騰,雖然成都又陷入農民軍的包圍,但也為洪承疇率軍入川爭取了時間。
十二月,洪承疇率曹變蛟、左光先、賀人龍等部進抵四川廣元,並調延綏總兵王洪、寧夏總兵祖大弼率部駐守漢中、略陽一帶防堵農民軍的出川通道。
這時農民軍已從成都撤圍,再次退回到劍州、梓潼一帶。而新任四川巡撫傅宗龍則趁機調集川兵六七萬人,駐紮到綿州、撞川、射洪、遂寧、西充、南部、閬中等地,在川南和川東方向上對農民軍形成堵擊。
崇禎十一年(1638年)正月,洪承疇率部向李自成等部發起進攻,雙方在梓潼展開激戰。此戰中農民軍遭遇重創,人馬折損大半,李自成等人從山間小道分路突圍,經松潘草地竄回陝西,並在曹變蛟、賀人龍的追擊下被迫退往甘肅臨洮,接著甚至又北出長城躲避到西北塞外的羌族地區。
後來李自成歷經千辛萬苦再度竄回川陝時,身邊僅剩三百殘兵敗卒。但是這時候的時間已經到了崇禎十一年的四五月份,距離楊嗣昌在這年二月了結賊寇的最後期限,已經延宕近三個月。要知道楊某人當初是立下軍令狀的,雖然崇禎保持耐心對自己繼續信任,但是責任問題的解釋工作最好還是主動去做。
本著這樣的想法,楊嗣昌行動了。打頭陣的是工部右給事中吳宇英,他給崇禎寫了一道奏章,指責洪承疇「受事已久,底績無期」是「縱寇禍貽五省」的罪臣,建議崇禎將洪承疇「急解兵柄,別簡名賢以代之」。
跟進助攻的是廣西道監察御史楊希旦,這位仁兄把「賊勢漫淫而難遏,賊焰燎灼而難撲」的責任全部推到洪承疇頭上,說洪承疇負有「養寇捻亂之罪」而該殺。
兩連擊之後,楊嗣昌親自出面向崇禎上奏,先是辨說「賊自秦入蜀數十萬,出蜀數萬」的損耗不是洪承疇的功勞,而是蜀中將士的功績,指責洪承疇欺君冒功。接著又指責洪承疇剿賊七年卻仍是「縱賊往來秦、蜀,逾久無功」,言下之意是洪承疇拖累了「三個月滅賊」的大計。
所以,楊嗣昌的責任解釋工作並不是開展自我批評,而是藉機扔黑鍋打擊政敵。
不過,好在這一次崇禎的耳根子還算爭氣,沒有照收楊嗣昌團夥的意見,雖然革了洪承疇的兵部尚書銜,但仍讓他以侍郎銜留任三邊總督繼續指揮剿賊。他的部將也受到了處分,曹變蛟、左光先被連降五級,但也仍舊保留總兵的職權,繼續跟從他作戰。
有人倒黴就有人走運,一年前楊嗣昌被崇禎奪情起復時,有人向他推薦了一位人才——熊文燦。熊文燦任福建巡撫時靠嘴上功夫招降了海寇鄭芝龍,又靠鄭芝龍滅掉了海賊李魁奇、劉香老,得以因功升任兩廣總督。
楊嗣昌向崇禎推薦熊文燦,崇禎本著身為一國之君的高度責任感,專門派太監前往兩廣對熊文燦進行面試,熊文燦酒後吐誑語:「諸臣誤國耳,若文燦往,詎令鼠輩至是哉!」這番話正中崇禎下懷,遂獲任六省軍務總理。
熊文燦的運氣簡直好到爆,在他從兩廣趕過來上任的時候,楊嗣昌的十面羅網計劃都落實的差不多了,就連崇禎也派太監盧九德、副將孫應元率禁軍勇衛營12000人前往江北助戰。
而且當時的左良玉也相當給力,張獻忠率部在南陽城外冒充官軍想騙開城門,正好趕上左良玉到南陽辦事,他便派人召張獻忠向他報告部隊番號。這麼一鬧張獻忠哪還有心思入城,拉起部隊撒腿就跑,這一跑就倒大黴了。