自萬曆末年起,明廷歲收1461萬兩,其中入內府供皇帝及宮廷開支的約600萬兩,餘下的才歸戶部作為朝廷的開支。其時官僚機構龐大,官吏劇增。而東北地區女真族再度興起。於遼東建立後金政權,舉兵反明,造成明朝嚴重的邊患。戰爭頻繁,軍費開支迅速增加。為此明朝政權不斷增加賦稅,於正稅之外,又有各種名目的“加派”,其中尤以遼餉、剿餉、練餉這3項加派最為擾民。
自神宗萬曆四十六年(1618)起,明廷借對後金作戰之名,始征“遼餉”,每畝征銀3厘5毫,兩年後增至9厘。崇禎三年(1630),又於9厘之外再增收3厘。“剿餉”則是專為鎮壓農民起義而設,“練餉”則是專為訓練軍隊而置。一年遼餉可達900萬兩,剿餉330萬兩,練餉730萬兩,“三餉”之合。每年多達2000萬兩,超過正稅一倍以上。
“三餉”之外,又巧立名目,加征商稅、關稅、鹽稅、礦稅等,以至於“舊征未完,新餉已催;額內難緩,額外複急”⑦,“窮鄉僻塢,米鹽雞豕,皆令輸稅”⑧,一時間,“三家之村,雞犬悉盡;五都之市,絲粟皆空”⑨。在土地兼並和沉重的賦稅壓榨下,廣大農民處境更加危難,隻得鋌而走險,奮起反抗,以求得一條生路。自萬曆初年起,各地相繼爆發規模不等的反抗鬥爭。盡管這些反抗鬥爭先後遭受鎮壓,但鬥爭此起彼伏,持續不斷。
天啟七年(1627)三月,陝西澄城縣知縣張鬥耀於青黃不接之際向百姓催逼租稅。以白水農民王二為首的數百農民衝人縣城,處死張鬥耀,開倉濟饑,由此揭開了明末農民戰爭的序幕。此舉立即得到廣大的饑民、逃兵及驛卒的響應。崇禎元年(1628),陝西府穀縣民王嘉胤率眾起兵,與王二會合,眾達五六千人。隨後又有安塞高迎祥、宜川王左掛、延川王自用等人聞風而起。崇禎三年(1630),陝西米脂人張獻忠亦於十八寨率眾起義。米脂人、曾為驛卒的李自成也因裁減驛卒俸祿,而率驛卒起義,投靠王左掛所部。王左掛兵敗投敵後,李自成率眾轉投張孟存的義軍,張孟存犧牲後,他領部眾衝出明軍包圍,繼續與官軍作戰。
麵對義軍聲勢日益壯大的局麵,明廷采取“恩威並濟”、“招撫”為主策策略,企圖分化瓦解義軍。此時各路義軍各自為戰,也曾一度推舉當時聲勢最強的王嘉胤為首領。王嘉胤遇害後,又推舉王自用為首領。但實際上,各路義軍仍不相統攝,力量分散。崇禎四年(1631),各路義軍因陝西地區連年饑荒,而轉移山西,王自用聯合老回回馬守應、曹操羅汝才、闖王高迎祥、八大王張獻忠、闖將李自成等路義軍,組成32營,共有20餘萬眾,分3路活動在山西平陽、澤、潞、太原等地。
義軍自陝西轉戰山西,明廷大為震驚。明帝朱由檢一改“招撫”為主的策略,轉為以“剿滅”為主,以洪承疇為陝西巡撫,總督三邊(延綏、甘肅、寧夏)軍務,令其組織數十萬官軍圍剿義軍。分散作戰的義軍經過激烈戰爭,又轉戰河北。不久王自用陣亡,餘部投奔李自成。此時,實力較強的高迎祥再與張獻忠、李自成、馬守應、羅汝才等首領聯合,突破明軍包圍,南渡黃河。崇禎八年(1635),明廷令洪承疇領兵出陝西,另一位明將朱大典統軍出山東,采取兩麵夾擊的策略,妄圖一舉翦除農民義軍。在十分危急的形勢下,起義軍13家72營會於河南滎陽,商討作戰方案。滎陽大會上,作為闖王高迎祥部將的李自成提出聯合作戰、分兵迎擊的策略,為眾將領所采納,遂分13家72營兵力為東、南、西、北四路,另有一路作為策應,主力突擊明軍兵力最為薄弱的東路。會後,高迎祥、李自成、張獻忠等領東路軍突破官軍的包圍,由河南轉入安徽。僅10餘天,即兵至鳳陽城下,一舉全殲鳳陽守軍6000餘人,留守朱國相兵敗自殺。義軍在此焚毀朱元璋的祖墳——皇陵,又鎮壓了百餘名抗拒的官吏、諸生及太監。張獻忠於城上豎起“古元真龍皇帝”的大旗。義軍於鳳陽的舉動令崇禎皇帝如喪考妣,痛哭流涕。他一麵下詔“罪己”,一麵又慌忙調遣兵力,任命湖廣巡撫盧象升為總理河北、河南、山東、四川、湖廣等五省軍務,與洪承疇分兵鎮壓義軍,“承疇剿西北,象升剿東南”⑩,對義軍展開一係列的攻勢。
高迎祥於鳳陽大捷後,又率兵入河南,繼而轉入陝西。盧象升緊追不舍,雙方大戰於朱龍橋,高迎祥部失利,隨後又一再受挫,被迫率部向漢中地區突圍,高迎祥不幸被俘遇害。其餘部在繼為闖王的李自成率領下,繼續與官軍抗爭。張獻忠則率部南進,攻陷廬州、麻城,使明廷的鎮壓遭受挫敗。
崇禎見此情景,顧不得對付東北地區的滿洲反明鬥爭,將主力從遼東調往義軍活動地區。崇楨十年(1637)三月,兵部尚書楊嗣昌上翦滅義軍的四正、六隅、十麵網之策,明廷隨即增兵12萬,增餉28萬兩,出動十省官軍,揚言於3個月內徹底消滅義軍,致使義軍再度處於危急的形勢之中。而此時的各路義軍仍分散流動作戰,既無根據地又無明確的綱領口號,因而相繼失利。十一年十月,李自成於潼關戰敗,與劉宗敏等18人殺出重圍,進入商雒山。張獻忠亦於湖北受挫後偽降。其他義軍或敗或降,起義鬥爭陷入困境。