李自成得知吳三桂拒絕投降,決定親自帶二十多萬大軍,進攻山海關。吳三桂本來就害怕農民軍,聽到這消息,嚇得靈魂出竅。他也顧不了什麼民族氣節,寫了一封信,派人飛馬出關,請求清朝幫助他鎮壓起義軍。
清朝輔政的親王多爾袞接到吳三桂的求救信,覺得機會來到,立場回信同意。接著,他親自帶著十幾萬清兵,日夜不停地向山海關進兵。
清軍到了山海關山下,吳三桂已經迫不及待地帶著五百個親兵出關迎接多爾袞。他見了多爾袞,卑躬屈膝地哀求多爾袞幫他報仇。多爾袞自然順水推舟地答應。吳三桂把多爾袞請進關裏,大擺酒宴,殺了白馬烏牛,祭拜天地,訂立了同盟。
李自成大軍從南麵開到山海關邊。二十多萬起義軍,依山靠海,擺開一字陣,一眼望不到邊。多爾袞從城頭望見起義軍陣容整齊,料想不容易對付,就讓吳三桂打先鋒,叫清軍埋伏起來,自己和幾名清將遠遠躲在後麵的山頭觀戰。
戰鬥開始了,李自成騎著馬登上西山指揮作戰。吳三桂帶兵一出城,起義軍的左右兩翼合圍包抄,把吳三桂和他的隊伍團團圍住。明兵東竄西突,衝不出重圍;起義軍個個血戰,喊殺聲震天動地。正在雙方激烈戰鬥的時候,不料海邊一陣狂風,把地麵上的塵沙刮起,一霎時,天昏地黑,對麵見不到人。多爾袞看準時機,命令埋伏在陣後的幾萬清兵一起出動,向起義軍突然襲擊。起義軍毫無防備,也弄不清是哪兒來的敵人,心裏一慌張,陣勢也就亂了。直到風定下來,天色轉晴,才看清楚對手是留著辮子的清兵。
李自成在西山上發現清兵已經進關,想穩住陣腳,指揮抵抗,已經來不及了,隻好傳令後撤。多爾袞和吳三桂的隊伍裏外夾擊,起義軍遭到慘重失敗。李自成帶領將士邊戰邊退。吳三桂仗著清兵人多勢眾,在後麵緊緊追趕。
李自成回北京後,在皇宮大殿裏舉行即位典禮,接受官員的朝見。第二天一清早就率領起義軍,離開北京,向西安撤退。
李自成離開北京的第三天,多爾袞帶領清兵,耀武揚威地開進北京城。公元1644年十月,多爾袞把順治帝從沈陽接到北京,把北京作為清朝國都。從那時候起,清王朝就開始在中國建立了它的統治。
第二年,清朝分兵兩路攻打西安。一路由阿濟格和吳三桂、尚可喜率領,一路由多鐸和孔有德率領。李自成率領農民軍在潼關抗擊清軍,經過激烈戰鬥,終於被迫放棄西安,向襄陽轉移。過了幾個月,農民軍在湖北通山縣九宮山,遭到當地地主武裝襲擊,李自成戰敗犧牲,年僅39歲。
李自成犧牲後,清軍就把進攻鋒芒指向張獻忠。1645年12月,清下詔招撫張獻忠,張獻忠毫不妥協,斷然拒絕。1646年(順治三年)清朝派肅親王豪格和吳三桂率軍由陝南入四川,進攻大西軍。張獻忠處境雖然困難,仍於同年7月率軍10萬退出成都,北上抗擊清軍。11月,駐軍川北西充鳳凰坡,由於叛徒劉進忠的出賣,清軍發動突然襲擊,張獻忠兵敗不幸犧牲。
明末農民大起義是中國古代史上規模最大、時間最長、鬥爭最複雜的一次農民起義,具有深遠的曆史意義。