三月,吳三桂率領遼東明軍約四萬人及八九萬關外漢民陸續進關,暫屯于山海關至灤縣、昌黎、樂亭、開平一帶 。這裡需要糾正一種常見的誤解:許多史籍都以為山海關屬於吳三桂的防區,甚至把吳三桂說成是山海關總兵 。其實當時的明山海關總兵是高第 ,下轄兵員數目約為一萬人。吳三桂進關之後即同高第匯合,密切注視形勢的變化。
三月十五日,大順軍進抵居庸關,明守將唐通投降。李自成對山海關一帶的官軍十分重視,他知道吳三桂所統邊兵是明朝的一支勁旅,距離北京比較近,又處於大順軍和滿洲貴族軍隊之間,如果不及時解決,將成為一個重大的隱患。至於解決的方式究竟是以武力消滅還是採用政治手段招降,李自成分析了當時的情況,認為以招降比較穩妥。因為自從大順軍進入山西以後,除了寧武總兵周遇吉負隅頑抗落得個兵敗身死的下場外,據守各戰略要地的明朝統兵將領,如大同姜瓖、宣府王承胤、居庸關唐通等,都望風歸附。在這以前投降的總兵還有白廣恩、牛成虎、鄭嘉棟、左光先、陳永福等。這種先例對吳三桂自然會產生重大影響。其次,吳三桂自己統兵在外,他的父親吳襄和其他家屬卻留在北京,為了保住身家產業,決策投降大順政權也是在情理當中的。另一方面,如果不先從政治上爭取就付諸武力,吳三桂勢必倒向滿洲貴族。因此,李自成命降將唐通率本部兵馬、帶上犒賞關寧官軍的銀兩、財物,前往山海關招降吳三桂和高第。唐通去後,「遺三桂書,盛誇自成禮賢,啖以父子封侯。」 這兩個明朝總兵果然立即投降了。由唐道接管了山海關防務,吳三桂則帶領部眾向京師進發,準備朝見李自成,接受新命。
吳三桂領著兵馬於三月二十四日到永平府(府治在盧龍縣),「大張告示:本鎮率所部朝見新主,所過秋毫無犯,爾民不必驚恐,等語。」 一兩天之後又行至玉田縣 。就在這時,吳三桂得到消息,說他在北京的家屬受到大順軍的侵犯,政治態度立即發生了變化。關於導致吳三桂叛變的直接原因有兩種說法:一種是說他的愛妾陳圓圓被劉宗敏奪去,於是「衝冠一怒為紅顏」 。另一種說法是劉宗敏在追贓助餉的過程中,逮捕了吳三桂的父親吳襄,「索餉二十萬」 。目前因史料不足,尚無法判定孰是孰非,但大順軍觸犯了他的家庭,大致是可信的。吳三桂本來是個封建軍閥,他的政治態度完全以個人利害為轉移。他投降大順政權,是為了保住既得利益,並希冀在大順朝革故鼎新之際儕身於新貴行列。當他獲悉自己的家庭受到波及時,便誤以為李自成的招降是把他騙來北京,將不利於己。其他地方傳來的大順政權對明降官追贓助餉的種種消息也使他不寒而慄。於是,他一怒而去,率部直奔山海關,向鎮守關門的唐通部發起突然襲擊。由於變生意外,唐通猝不及防,被吳軍擊敗,山海關遂為吳三桂佔領。吳三桂的叛變,對於各方面人士來說都是沒有預料到的,也是很不得人心的。在一個當事人的詩中有這樣的描寫:「吳帥旋關日,文武盡辭行。士女爭駭竄,農商互震驚。」 說明願意跟著他背叛大順政權的人寥寥無幾 。
唐通被擊敗後,帶著殘兵駐於關城西北的一片石,派人向北京告急。約四月初十日左右,李自成得到了吳三桂叛變、山海關被占的消息。經過緊急商議之後,他一面批評了劉宗敏,對吳襄進行了撫慰,並且讓牛金星代吳襄起草了一封給吳三桂的信,努力做挽回工作;一面決定親率大軍往山海關平叛。
四月十三日晨,李自成、劉宗敏帶領大順軍從北京出發,由丞相牛金星和少數大順軍將領統率一萬名士卒守備北京 。隨軍帶往山海關的有吳襄和崇禎帝的三個兒子,以及在西安、太原俘獲的秦王、晉王。這表明李自成希望讓吳襄出面消除誤傳的謠言,以父子之情打動吳三桂。帶明太子朱慈烺等一同前去的用意也非常明顯,無非是堵塞吳三桂效忠故主的借口。儘管李自成等作了諸多準備,但這一次招降卻沒有達到目的。吳三桂叛亂後,關寧兩鎮兵合在一起只有五萬人,佔據山海關一隅之地,根本無法同大順軍相抗衡。為了逃脫覆滅的命運,吳三桂不顧民族大義,決定賣身投靠滿洲貴族。
這時,滿洲貴族在關外建立的清廷,已經度過了由於皇太極去世而出現的內部動蕩,注意力又集中到如何利用明朝內部的階級大搏鬥實現自己進取中原的宿願。在大順軍佔領北京以前,清廷曾希望聯合農民軍推翻明王朝,分享勝利成果。這年正月二十七日,清廷派遲起龍等人充當使者,取道蒙古部落地區給大順政權送來一封信。信的原文如下:
「大清國皇帝致書於西據明地之諸帥:朕與公等,山河遠隔,但聞戰勝攻取之名,不能悉知稱號,故書中不及,幸毋以此而介意也。茲者致書,欲與諸公協謀同力,並取中原。倘混一區宇,富貴共之矣。不知尊意何如耳。惟速馳書使,傾懷以告,是誠至願也。」
這封信送到大順軍鎮守榆林的大將王良智手裡時,李自成已經率軍東渡黃河向北京進軍了。儘管王良智立即奏知了李自成,但李自成對清廷「協謀同力,並取中原」的建議卻未予理會。大順軍摧枯拉朽式的進軍,使滿洲貴族們既為之眼紅,也感到極大的不安。他們不僅考慮到一個新興的、朝氣蓬勃的漢族政權代替原來腐朽沒落、不堪一擊的明王朝之後,自己將無油水可撈;而且一旦大順政權完成了漢族地區的統一事業之後,必將憑藉強大的人力和物力資源,重新解決遼東問題。因此,清廷在攝政王多爾袞等人的策划下,決定乘大順軍立腳未穩之時出兵干涉。
四月初,清廷得到大順軍佔領北京、明朝覆亡的消息,便急不可待地大舉興師。《朝鮮李朝實錄》中,記載了朝鮮使臣鄭太和四月十四日在安州同清朝使節談話後寫的一件緊急報告,其中說:
「……(清使鄭命壽)又曰:『頃日九王聞中國本坐空虛,數日之內,急聚兵馬而行。男丁七十以下,十歲以上,無不從軍。成敗之判,在此一舉。』臣問:『所謂本坐空虛者何事耶?』曰:『為土賊所陷』雲,而更不明言。所謂本坐似指中原皇帝而言矣。」
四月初九日,多爾袞和豫郡王多鐸、武英郡王阿濟格等,帶領滿洲、蒙古八旗兵員的三分之二以及全部漢軍大舉「伐明」 。進軍路線是採納漢奸洪承疇的建議,準備由薊州、密雲地區破邊牆而入。四月十五日,清軍行至翁後,遇上了吳三桂派來的使者副將楊坤和游擊郭雲龍,告以山海關形勢危急,「若及此時促兵來救,當開山海關門以迎大王」 。同時面呈書信一封,內稱:「王以蓋世英雄,值此摧枯拉朽之會,誠難再得之時也。乞念亡國孤臣忠義之言,速選精兵直入中協、西協。三桂自率所部,合兵以抵都門,滅流寇於宮廷,示大義於中國。則我朝之報北朝者豈惟財帛,將裂地以酧,不敢食言。」 多爾袞大喜,除留下使者楊坤外,還派妻弟拜然隨郭雲龍前往山海關探其虛實。同時下令改變行軍路線,向山海關兼程進發。在給吳三桂的回信里,多爾袞避而不用「合兵」一詞,卻趁機向吳三桂進行招降:「今伯若率眾來歸,必封以故土,晉為藩王。一則國讎得報,一則身家可保,世世子孫,長享富貴,如河山之永也。」 吳三桂得到回書後,果然決定投降,並決心驅迫關遼兵同大順軍惡戰一場,藉以提高自己在滿洲貴族面前的地位。
四月二十一日,大順軍到達山海關,吳三桂只留下少數軍隊和反動鄉紳防守關城,把主力已拉到關內石河,擺開陣勢。李自成除了把主力用於石河以外,還派出部隊進攻山海關的東羅城、西羅城和北翼城 ,對吳軍實行包圍。雙方晝夜激戰,至二十二日晨,吳軍已困憊難支,據守北翼城的一支吳軍向大順軍投降,吳三桂的全軍已面臨崩潰之勢。清兵於二十一日晚趕到山海關後,屯駐於歡喜嶺。此時的多爾袞並不急於參戰,他「蓄銳不發」 ,要等到吳三桂部支持不住、大順軍也疲憊時再一鼓作氣奪取勝利;同時,他也要觀察一下吳三桂的誠意,以免上漢人的當。二十二日晨,吳三桂感到形勢嚴重,帶著屬官和鄉紳們出關,至歡喜嶺上的威遠台 謁見攝政王,請求清軍立即來援。多爾袞諭以「汝等願為故主復仇,大義可嘉,予領兵來成全其美。先帝時事,在今日不必言,亦不忍言。但昔為敵國,今為一家。我兵巡關,若動人一株草、一顆粒,定以軍法處死。汝等分諭大小居民,勿得驚慌。」 繼之又對吳三桂道:「爾回,可令爾兵以白布系肩為號。不然,同系漢人,以何為辨?恐致誤殺。」 說完,讓吳三桂等先行回去,自己隨即下令清軍,從南水門、北水門、關中門三路進關。布好陣勢後,即向大順軍陣地發動猛烈衝擊。大順軍雖然奮勇迎敵,無奈清兵以逸對勞,而且在數量上也佔了很大的優勢 ,故不久便敗下陣來。清軍乘勝追擊,大順軍大敗,兵員器械損失慘重,大將劉宗敏也負了傷。李自成只好連夜撤退。他們行經永平范家莊時,把吳襄處斬。二十六日回到北京,又殺吳三桂全家三十四口。而吳三桂本人卻在山海關戰役結束這一天,被清攝政王承製封為平西王