項城之役中傅宗龍兵敗身死後,明廷於十一月間提升陝西巡撫汪喬年為陝西三邊總督,令他火速準備,東出潼關,同左良玉部夾剿義軍。汪喬年奉命後「即飛檄各邊調集兵馬,戴星治械措餉」 ,積極籌備提兵入豫。發兵前,他感到李自成羽翼已成,氣候大非尋常,於是便想出一條「奇計」,密令米脂縣知縣邊大綬把李自成的祖墳掘毀,以為這麼一來風水既破,李自成必敗無疑。這幫迷信愚昧的傢伙,除了把他們的仇恨盡情地發泄到李自成先人的枯骨之上以外,還把墓中捉到的一條小蛇視為即將化龍之靈物,極盡渲染鋪張之能事 。崇禎十五年正月,汪喬年在西安登壇誓師,「斬蛇以徇」 。二月間,他率領總兵賀人龍、鄭嘉棟、牛成虎、張國欽、張應貴等統兵三萬出潼關。陝西官軍進抵洛陽時,李自成、羅汝才部義軍正把左良玉部官軍包圍在郾城。汪喬年認為這是同左良玉會師合擊義軍的大好時機,就把步卒留在洛陽,領著二萬騎兵兼程前進。汪軍到達襄城時,一小撮受到起義農民打擊的地主豪紳遠道來迎,要求官軍為他們復仇,並且告以起義軍的虛實。汪喬年大為高興,神氣活現地說:「賊在吾目中矣。二三日間當為汝軍掃蕩賊氛,碎元兇如齏粉也。」 他下令賀人龍、鄭嘉棟、牛成虎三總兵各領所部,分作三路進至襄城以東四十里,同被困郾城中的左良玉部遙為聲援。自己則率領總兵張應貴部四、五千人入屯襄城。李自成等偵知汪喬年的軍隊已經到達襄城,立即撤出包圍郾城的部隊,西向迎擊來援的陝西官軍。二月十三日,義軍於襄城東面初戰告捷,明總兵張國欽被擊斃。賀人龍、鄭嘉棟、牛成虎都不戰而走,逕自奔回陝西。左良玉在義軍主動解圍後,不僅沒有西向夾擊義軍,反而乘機帶著部眾向東溜走。總督汪喬年遂成了光桿司令。義軍再次進攻襄城,到十七日攻克 ,明總兵張應貴被炮火擊斃。汪喬年亦被活捉,帶到城北韓家莊經李自成親自審訊後處決。
義軍粉碎汪喬年的進攻以後,乘勝連克豫東大批城鎮。三月二十二日,克睢州,「入城搜掠財物,未殺一人。」 二十七日攻克歸德府(今河南商丘)。四月中旬,李自成、羅汝才部義軍同河南的一支農民起義武裝袁時中為首的小袁營會合。本月十六日佔領杞縣。這樣,李自成等部義軍就掃清了開封的外圍,為最後拿下該城創造了條件。
五月初二日,義軍第三次進攻開封。李自成設指揮部於閻李寨,羅汝才屯於橫地鋪。明廷急令督師丁啟睿、保定總督楊文岳和總兵左良玉、虎大威、楊德政、方國安等率領大批軍隊來援。官軍總數多達十八萬,號稱四十萬,連營河上,擺出了同義軍展開決戰的陣勢。五月十三日,官軍前鋒到達朱仙鎮,起義軍暫時撤離開封,集中力量打擊來援的官軍。為了防止開封城內的官軍出城追襲,使義軍陷於腹背受敵的不利地位,李自成派人持偽造的左良玉部令箭到城下大呼道:「賊旦夕成擒矣,但恐其潛遁入城,汴兵無多,當嚴守,不可輕出。」 城內的明朝官僚果然中計,閉門不出。由於丁啟睿統御無能,官軍內部各將領之間又矛盾重重,朱仙鎮一戰,官軍主力左良玉部七千人首先避戰而逃,其他將領也不戰而潰。丁啟睿借口追回左良玉,經許州逃往光州、固始;楊文岳倉皇竄往歸德。義軍大獲全勝,俘殺明總兵姜名武 ,收得降卒數萬名,騾馬七千匹 。五月二十五日,義軍復圍開封 。朱由檢獲悉援軍潰敗,丁啟睿在狼狽逃竄時竟把督師的敕書、印、劍都丟失一空,憤恨不已,下令把丁啟睿逮捕下獄,楊文岳也革職候代。左良玉雖然倡逃在先,由於他兵多勢大,朝廷有所顧忌,只把另一總兵楊德政作個「法頭例首」,予以處斬。
開封城內的明朝文武官員見救兵潰散,守城的官軍力量又單薄,不足以同起義軍相抗衡,就以共同的階級利害來動員地主豪紳,組織反動武裝負隅頑抗。六月二十六日,明開封府推官黃澎在曹門豎起一面大白旗,上面寫道:「汴梁豪傑,願從吾游者立此旗下。」這一著棋果然收到相當效果,開封城內的上層人物,「郡王、鄉紳、士民、商賈無不願入社。」 這些地頭蛇為了保住自己的身家地位,強迫自己控制下的勞動人民參加地主武裝,在短期內就集結了一支上萬人的隊伍。被指派為頭目的都是明宗室、鄉紳和富商大賈 。這在一定程度上加強了開封城內的守御力量。但是,人民群眾是心向著起義軍的,甚至在明政府的嚴密控制下,仍然有貧苦群眾冒著生命危險投奔義軍。如開封城裡一位名叫孫忠的鍛工,便私自打造了幾百個箭鏃,寫下手摺一個,內稱義軍為「天兵老爺」,擬趁開封當局放饑民出城采青的機會混出城去。不幸被把門的軍士搜出,結果被慘無人道地用長釘將四肢釘在城門上,壯烈地犧牲了 。
起義軍首領們總結了兩次進攻開封失利的教訓,決定改用長期圍困的策略。除了把主力用於包圍開封以外,還「分黨四齣,勢如破竹」 ,兩個月內就攻克附近三十多座州縣,使官軍據守的開封變成了汪洋當中的孤島。為了爭取城內明朝文官武將停止抵抗,義軍曾以李自成的名義,寫了一件文告用箭射入開封城裡。告示原文如下:
「奉天倡義營文武大將軍李示:仰在城文武官吏軍民人等知悉。照得丁啟睿、左良玉俱被本營殺敗,奔走四散。黃河以北援兵俱絕。爾等游魚釜中,豈能當(長)活?可即開門投降,一概赦罪紀功,文武官員照舊錄用,斷不再殺一人以干天和。倘罪重孽深,仍舊延抗,本營雖好生惡殺,將置爾等於河魚腹中矣。慎勿沈迷,自貽後悔。」
這件告示很值得注意,它不僅表達了李自成等起義軍領導人力圖減輕雙方軍隊的傷亡和城中百姓的苦難等願望,也反映了義軍在政治上的更臻成熟和在組織上的變化。李自成長期沿用的「八隊」(或老八隊)營號,這時已經改為「奉天倡義營」,他自己的闖將稱號也隨之改為「奉天倡義營文武大將軍」。這說明到崇禎十五年五月以後,原來時分時合的各支義軍開始走向統一,李自成的領袖地位逐漸形成。「奉天倡義」的營號,明顯地具有號召各路義軍和廣大群眾共同推翻明王朝的意義。告示中命令開封城內的明朝官僚立即投降,並且宣布「照舊錄用」,表明義軍已有建立政權的明確意向。
李自成發布的文告,給開封城裡的明朝官僚指明了出路,然而,這批傢伙階級本性不改,仍然把希望寄託於明廷調集兵力把他們解出重圍。他們對義軍的文告置之不理,繼續負隅頑抗,從而給開封城內的百姓帶來了極大的災難。經過一段時間的圍城,城內的糧食所余無多,普通居民大批地餓死,明官僚卻趁機大肆搜括。他們強行攤派民戶交糧,無糧的折銀交納。開初每石食糧折銀八十兩,後來增加到一百三十兩。交不出糧食和銀錢的就「先捉幼男女以大針數百刺其膚,號叫冤慘。」 甚至有的富室交納了上萬兩白銀仍不免於拷掠而死。守城的官軍持巡撫的令箭闖入民家搜糧,除郡王以上的府第外,無處不搜,「掘地拆屋破柱以求」 。市上糧價飛騰,「米粟百金一斗,青菜千錢一斤」 ;後來完全斷市,有錢也買不著食物。城裡糧食告絕後居民們吃牛皮、皮襖、藥材、水草、瓦松、馬糞、膠泥等以求苟延時日,最後竟至於出現人吃人的悲慘局面。官軍更公然以人為糧,「將軍密計撫軍頷,肥瘠皆堪充軍食。」
到崇禎十五年九月間,明官僚見外無救兵,內無糧草,開封城的陷落已經迫在眉睫。為了逃避失城陷藩的罪責,他們竟喪心病狂地決定把黃河大堤決開,企圖放水淹沒開封和圍城的義軍,自己則事先打造好船隻準備逃命。九月十五日夜,官軍決堤,大水如山崩而至。除了一小撮反動官僚擁簇著周王朱恭枵登舟逃出以外,整個開封城和附近的居民都被淹沒。義軍戰士急忙移到大堤等高處避水,被洪水沖走的仍有一萬多人。時人陳之遴寫了一首《汴梁行》說:「守臣登陴但垂泣,面若塵土心寒灰。繡衣使者出奇算,中夜決堤使南灌。須臾盈城作魚鱉,百姓盡死賊亦散。九重聞報空痛心,縉紳萬舌緘如喑。」 揭露了明官僚決河灌汴的黑幕。
明官僚的水淹開封,充分暴露了剝削階級仇視人民的反動本性。事後,在朝廷上雖有一些官僚上疏,要求追查開封城守官員自行決堤淹城的責任,朱由檢卻認為他們在起義軍三次進攻開封時始終負隅頑抗,表現了效忠明王朝的反革命氣節,因此不僅不予處罰,反而「念其勞苦」,獎勵有加。黃河大堤的被決開,給附近州縣的百姓造成了極大的災難,葬身魚腹者不計其數,僥倖逃生者也因田地屋舍被水淹沒而號泣呼天,顛連無告。明朝廷對此竟熟視無睹。到崇禎十七年正月,這個罪惡的王朝即將受到最後的清算時,兵部尚書張縉彥等人竟然異想天開,提出派人去開封扮取水中沉銀。崇禎皇帝聽說有銀可撈,立即食指大動,催促火速進行。大學士蔣德璟等人會商後回奏說:「至樞臣所奏汴城撈銀一事,其名不甚雅。欲專責撫按,又恐別有漏卮。察得工臣周堪賡見在河工,即以汴城修復之舉,權令相度而去其積水,撈出余銀,借修城之名而收助餉之實,似亦事理