1917年,到16軍混成旅馮玉祥軍中。起初被派為差遣,不久升任排長。
1919年被選送到軍官教導團學習,結業後即升任模範2連連長,以後繼任學兵團營長。
1924年,升任兵團團長。
1925年,升任第15旅旅長。
1927年4月,被委任為第28師師長兼潼關警備司令。
1928年,兼第2集團軍軍官學校校長和開封戒嚴司令。
1929年,調任第11軍第22師師長。同年冬,原25師改編為第6師,任師長,後參加中原大戰。“九·一八”事變後,西北軍餘部改編為國民政府陸軍第29軍,任該軍38師師長兼張家口警備司令。
1933年初,29軍奉命參加長城抗戰,率所部在喜峰口與日軍血戰,名聲大振。同年夏,參加察北抗戰。
1935年任察哈爾省政府主席。
1937年“七·七”事變時,任冀察政務委員會委員和天津市市長,除掌管軍務外並負責對日交涉。當29軍撤離平津時,他受命代理冀察政務委員會委員長兼北平市市長。日軍占領北平後出走。11月,在河南任第59軍(由原38師擴編)軍長。後該軍調赴徐州,編入第5戰區序列。
1938年2月,奉命支援淮北於學忠部。在固鎮指揮59軍與日軍血戰7天,奪回曹老集、小蚌埠陣地,穩定了淮河防線。3月,又奉命支援臨沂龐炳勳部,指揮59軍在臨沂城郊與日軍精銳阪垣師團進行拉鋸戰。經7晝夜鏖戰,取得臨沂戰鬥的勝利。
同年5月中旬,在徐州突圍時,奉命掩護友軍撤退。在戰鬥人員不足的情況下,59軍在蕭縣南部地區頑強阻敵。完成任務後,到河南信陽稍事整補之後,又投入武漢會戰,在潢川、大別山一帶阻擊敵人。10月率部安全撤回鄂西,升任第33集團軍總司令。後兼第5戰區右翼兵團總司令。
1939年5月,敵將岡村寧次調集10餘萬日軍進犯隨縣、棗陽。他率33集團軍從外線夾擊敵人,並率領騎兵第9師及總部手槍營出敵不意,冒險東渡襄河(漢水的一段),攔腰截擊敵軍主力,在田家集大敗日軍,取得了襄東戰役的勝利。
1940年5月,日軍集結重兵向宜昌發動進攻。他率部從右翼打擊向棗陽地區進犯的日軍主力。出擊前,召集軍事會議,鼓舞士氣,全軍士氣高昂,與敵激戰,連連告捷。5月7日,率總部手槍營和74師的兩個團,從宜城東渡襄河,給敵人以極大威脅。日軍調集主力,折回反撲。經過七八天的苦戰,部隊減員甚重,糧彈兩缺。5月16日,被困在南瓜店的杏兒山。從早晨到中午,他奮勇督戰,不肯退避。在戰鬥中,肩部中彈,仍指揮若定。18日,日軍衝上杏兒山,他身受重創,仍呼喊“殺敵報仇”,為國為民流盡最後一滴血。