華北"剿總"總司令傅作義指揮下的國民黨軍4個兵團12個軍連同其他武裝共60餘萬人,在遼沈淮海兩大戰役震撼下,已成驚弓之鳥。由於美國、蔣介石、傅作義各有打算,因而撤守不定,南逃、西竄也不定。美國不願意放棄在華利益,企圖以直接援助誘使傅作義固守平津,牽製人民解放軍南下,以掩護蔣介石在江南重整軍力。蔣介石則以東南行政長官之職誘使傅作義南撤,以加強江南防禦。傅作義則從自身利益計,擬西撤綏遠老家,以保存實力,求得東山再起。由於美、蔣、傅都認為東北解放軍至少休整3個月才能人關作戰,所以不急於南逃或西竄,於是在1948年11月上旬南京軍事會議上確定了"暫守平津,保持海口,擴充實力,以觀時變"的方針。據此,傅作義把蔣介石嫡係3個兵團8個軍擺在北平以東及天津、唐山一線,將自己嫡係1個兵團4個軍放在北平以西及平綏線上,形成東起唐山、中經平津、西至歸綏的千裏戰線上一條長蛇陣,以便南逃或西竄。

對華北國民黨軍的企圖,中共中央軍委認為,能否穩住國民黨軍,不使其南逃西竄,不讓它收縮集中,就成為能否全殲平津、張家口、唐山之敵的關鍵。據此作出了"穩住敵人,不使逃跑,分割包圍。就地全殲"的戰略計劃。命令東北野戰軍於遼沈戰役結束後,迅速秘密人關,出敵不意實施戰略包圍,力求全殲。決定由林彪、羅榮桓、聶榮臻3人組成平津前線總前委,統一指揮東北、華北兩大野戰軍百萬大軍。

月29日,平津戰役開始,華北野戰軍根據毛澤東對國民黨軍分割包圍、斷其逃路的指示,包圍了傅作義西竄綏遠的唯一通道平綏線上重鎮張家口,12月9日將傅作義嫡係第三十五軍包圍於新寶安,12月11日人關的東北野戰軍在康莊、懷來地區殲滅向西策應第三十五軍的國民黨軍第十六軍、第一。四軍主力,從而完成了對平張線上國民黨軍的分割包圍。為了防止國民黨軍從尚未完全斷絕的海上通道逃走,人民解放軍對平張線之敵"圍而不打",對平津、通線之敵"隔而不圍",割斷國民黨軍聯係,完成部署後再各個殲滅。毛澤東還致電華東野戰軍,暫停對被圍的杜聿明集團的攻擊,以免蔣介石迅速決定海運平津國民黨軍南下。

從12月12日起,人關的東北野戰軍主力以神速動作,出敵意外地提前完成了對平、津、塘國民黨軍的戰役分割。這樣到12月21日,人民解放軍完全斬斷了傅作義的一字長蛇陣,國民黨軍已無逃跑的可能,蔣介石、傅作義商定的"暫守平津,控製海口,擴充實力,以觀時局變化"的戰略方針完全落空。

在平津戰役最後部署完成之後,人民解放軍即遵照毛澤東先取兩頭,後取中間,"隻要塘沽、新保安兩點攻克,就全局皆活"的指示,對被圍被隔之敵實行各個殲滅。12月22日夜,華北野戰軍向新保安國民黨軍第35軍發起總攻,全殲該軍1.6萬餘人,軍長郭景雲自殺。24日,華北、東北兩大野戰軍在張家口以北地區全殲國民黨軍7個師5.4萬餘人,完成了對平張線上國民黨軍的消滅。

在北平以東到大海一線上,人民解放軍本擬首先殲滅塘沽之敵,但由於該處地形不利於作戰,且打塘沽時平津之國民黨軍有可能趁機突圍,於是改打天津。人民解放軍集中34萬人,在天津國民黨軍警備司令陳長捷拒絕放下武器、和平解決的情況下,於1949年1月14日發起總攻,經29個小時激戰,全殲守軍13萬餘人,生俘陳長捷。1月17日,據守塘沽的國民黨軍5萬餘人乘軍艦逃走,人民解放軍追殲其後尾一部,解放塘沽。

天津、塘沽、新保安、張家口解放後,百萬解放軍雲集北平周圍,北平國民黨軍25個師25萬餘人已完全陷入絕境。人民解放軍雖然已做好一切攻城準備,但是,中共中央、中央軍委鑒於北平是世界馳名的文化古城,為保護其免遭戰火,決定盡最大努力通過談判和平解放北平;一旦和談不成才以戰鬥方式解決之。經過努力,傅作義認清形勢,下定了決心,堅定地接受了和平解放的協議,於1月21日達成了《關於和平解決北平問題的協議》。從22日起,國民黨北平守軍陸續開到城外指定地點,聽候按人民解放軍的製度進行改編。31日12時30分,東北野戰軍第四縱隊第十師從西直門開人城區接防,北平城頭上飄起人民解放軍軍旗,北平宣告和平解放。

平津戰役曆時64天,殲滅和改編國民黨軍華北"剿匪"總部及1個警備司令部、3個兵團部、13個軍部、50個整師共52萬餘人。人民解放軍傷亡3.9萬人。平津戰役的戰役,使華北地區基本上得到解放,其意義恰如中共中央在賀電中所說:"華北人民解放戰爭的偉大勝利,連同東北、華東、中原、西北人民解放戰爭的偉大勝利,以及南方人民遊擊戰爭的勝利在一起,已經奠定了人民解放戰爭在全國勝利的鞏固基礎。"中共宣布國民黨頭等戰犯