在这种有利的情况下,进攻北京的计划很快被提到了日程上来。1644年正月,李自成率军进攻北京。崇祯皇帝得知李自成进攻北京的消息,心里哀叹大势已去,但还想作垂死挣扎。崇祯帝下诏让吴三桂进京勤王。此时山海关总兵吴三桂,接到勤王的诏书,怕李自成兵力强大,不敢进兵,但又不能不奉诏,当天下达命令,率兵士五万人,向京师进发。但其每天行军才三十里,有意迟迟缓进。吴三桂的打算是拖延时间,待到各路援兵聚齐后,兵力雄厚,再和李自成交战,那就不怕他了。谁知才行军到丰润,京城失守的消息便传来了,吴三桂见大势已去,干脆屯兵观望。
李自成的农民军临近北京,军队分成两路。一路由李芳亮带领进入豫北,攻取保定,会师北京。另一路由李自成、刘宗敏率领进攻北京。农民军一路所向披靡,每进一城,百姓们张灯结彩,载歌载舞,欢迎农民军把他们从苦海中解救出来。
三月,农民军大部队已来到了北京城下,开始了对北京城的围攻。这一天,月色昏蒙,寒风凄冷,京城外的火光,惨红如血。一阵阵的啼哭声,夹杂着炮火声和喊杀声,昼夜不绝。崇祯皇帝扶着王承恩,踉踉跄跄地转回南宫,到了万岁山上,倚在寿皇亭的石栏边,遥望城外烽火连天,哭喊呼嚎声、兵器声、马蹄声,隐隐可辨。火光四处不绝,照得满天通红,看到农民军已近在咫尺,繁华的京都,瞬时变成了一片焦土,这时天空的月光被浓云遮掩起来,越发显得大地黝黑,举目都是一副凄惨的景象。此时的崇祯帝才深深地感到了绝望,明白大势已去,长叹一声,含着泪爬上石扶栏,把头颈套进了丝绦,双脚一蹬,身体就高高地悬在树枝上了。崇祯帝吊死在了万岁山的一棵树上。腐朽的明王朝也随着崇祯帝的死走到了尽头。
大顺军在北京城百姓的欢呼声中迈着胜利的步伐开进城里。此时崇祯皇帝殉国的消息传到了吴三桂那里。吴三桂虽率领大军,但害怕李自成兵力强大,不敢向前,只是按兵不动。正在观望之际,忽然听到李自成派遣使者来到,吴三桂吃了一惊,随即命令手下传使者进来,使者送来了劝降吴三桂的书信。吴三桂爽快地答应归顺。在吴三桂回京的路上,听到一位从京城里逃出的家人说,老爷吴襄被刘宗敏抓走,遭到严刑拷打,家中银两全被抢走,爱妾陈圆圆被刘宗敏抢走,至今下落不明。吴三桂一听,这还了得,立刻暴跳如雷,误以为自己被李自成骗到北京,然后剥夺家财与军权,他发誓要杀了李自成。
吴三桂马上带兵返回山海关,向唐通突然发起进攻。因唐通刚在山海关驻防,立足未稳,所以很快被吴三桂击败,山海关重新回到吴三桂的手中。李自成得知山海关失守后,为事情的突变而吃惊,也为招降之事功亏一篑而感到后悔,他只好亲自出马去对付吴三桂。
1644年,李自成亲自率领大军向山海关方向进发,北京由丞相牛金星和李过留守。李自成的大军在四月抵达永平,二十一日到达山海关,于是立即投入了战斗。以前清兵数次内犯,都没经过山海关,而是绕道南下。山海关号称“天下第一关”,地势险要,军事设施齐全。此时吴三桂早已同境外的清军联络妥当,请求清兵援助。清将多尔衮对此求之不得,立刻回信答应此事。一场激战不可避免。
李自成的大军首先和吴三桂的军队在西罗城展开激战。两军从早晨战至中午,吴三桂的力量明显处于劣势,西罗城于是被李自成军攻占,这时吴三桂的一支炮兵赶到,突然向李自成军发起猛烈炮击,稳住了阵脚。到二十二日早晨,驻守北翼城的吴军抵挡不住李军的猛攻,已向李自成军投降。吴三桂军千方百计防守,险象丛生,露出全线崩溃的迹象。在此危急时刻,清军突然赶到援战,从而使战局为之一变。
清兵突破李自成军的防线后,吴三桂军的士气大增,也发起反击。虽然刘宗敏奋勇追击,顽强督战,带领的部下也是三军之首,但此时也没法挽回颓败之势。他本人也被流矢击中,受了重伤。李自成眼看败局已定,于是急命撤军。
山海关之战是明末三大军事力量同时参与的一次大会战,也是决定大顺政权能否继续存在的一次决定性战斗,在某种意义上它也改变了中国的历史:大清政权代替了大顺政权。
面对着强大的敌军,李自成没有任何退敌的妙计,只好做出痛苦的抉择——退出北京。