1948年5月，任华北军区第二兵团第二政治委员，7月任第三兵团司令员。9月，组织指挥了察绥战役，进军绥远，攻占集宁、包头等地。11月，率部参加平津战役，在东北野战军第四纵队和地方部队的配合下攻占张家口，歼灭国军第十一兵团。1949年2月，任中国人民解放军第二十兵团司令员，参与太原战役。此后驻防华北，任天津警备区司令员，京津卫戍区副司令员，中共中央华北局委员。1949年9月，出席了中国人民政治协商会议第一届全体会议。