1933年熱河淪陷後,日本侵略軍繼續向南攻擊,妄圖在短時間內佔領長城各口,繼而擾亂河北,威脅平津。3月,二十九軍奉命接替友軍長城沿線防務。負責喜峰口一線防務的三十七師師長馮治安接令後,急命三十七師趙登禹旅跑步前進,阻止敵人進犯。
9日,趙登禹旅王長海團率先到達戰場,即向日軍進行猛攻,和敵人反覆爭奪陣地。趙登禹率部趕到後,於當夜果斷派出兩個營對敵人發動夜襲,斬殺大批日軍。
日軍遭中國軍隊奮勇反擊後,再調集數千人,向喜峰口二十九軍陣地攻擊。二十九軍官兵竟日奮戰,斃敵甚眾。馮治安傳達軍長宋哲元命令,任命趙登禹為喜峰口方面作戰軍前敵總指揮,最終將敵人擊退。
為了進一步打擊敵人,馮治安和三十八師師長張自忠、二十九軍副軍長秦德純等研究了戰術,又派人向前線的趙登禹等徵詢了意見,計劃11日深夜派部隊再次發動夜襲,並報軍長宋哲元獲准。當夜,二十九軍分別抽調趙登禹、佟澤光兩旅,分兩路從側翼包抄,襲擊敵軍,並將正面陣地交由王治邦旅防守,準備待兩路夜襲部隊得手後,即行出擊。
日軍萬萬沒有想到中國軍隊竟然發動二次夜襲。當夜4時左右,二十九軍夜襲部隊摸入敵營,除斬殺大批敵人外,摧毀了敵人炮兵陣地,繳獲敵人坦克、裝甲車、大炮、機槍無算。除地圖、炮鏡及輕武器外,夜襲部隊將無法攜帶的戰利品都予以炸燬、焚燬。
12日晨,日軍組織反撲,二十九軍官兵守住陣地,遠則槍擊、近則刀砍,和敵人殊死相搏,“敵死傷甚重,終未得逞”。
敵人接連進攻失敗又遭夜襲後,已成驚弓之鳥,“喜峰一帶之敵,連日被我痛擊,異常疲憊”。到14日上午,攻擊喜峰口正面之敵自行悄悄撤退。當日黃昏,喜峰口正面高地為二十九軍完全佔領。此後,二十九軍劉汝明師在羅文峪擊退了進犯之敵。
二十九軍在喜峰口挫敗來犯日軍的消息迅速傳遍全國,二十九軍將士揮舞的大刀,成為抗擊侵略、英勇無畏的象徵。各界人民群眾自願組織起來捐募大量食品、藥物和軍需用品慰問前線將士。全國輿論盛讚二十九軍是“不能忘記的英雄”;喜峰口戰鬥“斃敵六千之多……不惟往年(馮子材)諒山之役望之遜色,即十九路軍血戰淞滬之功,亦不是過”。
第二年春天,二十九軍編纂成一部《華北(長城)抗日實紀》,詳細記述了此次戰鬥的經過。二十九軍主要將領為書作序,其內容或謳歌二十九軍官兵浴血奮戰、為國捐軀的勇氣熱情,或向世人積極展示二十九軍抵禦外侮的輝煌戰績。而馮治安撰寫的序言,卻把筆墨著重用在談“失敗”上。在文中,他直言戰鬥的代價就是換來了一個“可羞的屈辱條約”《塘沽協定》,還告誡人們:“不要為這光榮戰史的光榮所迷惑,千萬不要忘記了我們可恥可悲的失敗並失敗的原因與缺點。”他更列舉出戰鬥中如“指揮官指揮太過於笨拙”“射擊技術與各種作業的不良”“物質方面的缺欠”等導致“失敗”的原因,以期部隊能迅速改正,以備將來。