7月18日拂晓,日机40架突然空袭北平城外南苑、西苑和北苑的中国军队,掩护其机械化部队猛烈进攻
28日晨,日军向北平市郊发动总攻,以第20师主力配重炮40门,在坦克部队和炮兵掩护下,对南苑展开攻击。日驻屯军步兵旅主力由丰台向南苑进攻,切断南苑守军向北平方向的退路。守军被迫仓卒应战,利用营房周围障碍物及村庄为掩体,顽强抵抗,有些阵地失而复得。但由于日军飞机与大炮轮番轰炸,守军无法展开,加之通讯设施被炸毁,指挥失灵。官兵苦战至下午2时,战死约5000人,29军副军长兼教导团团长佟麟阁和132师师长赵登禹率2000余人的部队守卫南苑。在敌密集炮火之下,处境极为不利。面对强敌,佗赵两人决定誓死坚守,他们指挥部队英勇抗击。
7月28日由晨至午,战斗激烈,双方损失惨重。下午,佟麟阁等奉命率部向大红门转移,中途被日军包围,乃挥师继续与敌人苦战。佟麟阁在指挥右翼部队向日军突击时,被敌机枪射中腿部,佟仍率部激战。敌机又来狂轰滥炸,他头部受重伤,流血过多,英勇殉国。赵登禹师长在激战中右臂中弹,仍继续作战。不久,他腿部等处亦受伤,赵登禹率部突围北走,车行到黄亭子,赵被日军伏兵击中胸部,壮烈殉国。佟麟阁、赵登禹为国牺牲的噩耗传往全国,激发了军民抗日复仇的义愤。南京国民政府发布褒扬令,追赠佟麟阁、赵登禹为陆军上将。
28日下午,宋哲元委派张自忠代理冀察政务委员会委员长、冀察绥靖公署主任兼北平市市长,留北平和敌人暂时周旋,自己于当日晚离北平赴保定。第37师撤至永定河南岸布防。
29日8时,日军独立混成第11旅团攻击北苑与黄寺。黄寺守军冀北保安部队与日军战斗至18时后撤退 北苑守军独立第39旅与日军战斗后转移到古城,战斗结束后又返回北苑。该旅于31日被日军解除武装。在城内的独立第27旅被改编为保安队维持治安,数日后突围到察哈尔省归第143师序列。
驻防天津的第29军第38师部队,于29日凌晨主动向天津日军发动攻击,攻占天津总站日军驻地,并向驻海光寺日军司令部和东局子飞机场展开攻击。开始时较为顺利,后在日军飞机、炮火反击下,至15时开始撤退,随之天津沦陷。
29日驻通县伪冀东保安队反正,并向通县日军和伪冀东自治政府发动攻击,取得胜利。当日下午,反正部队撤离通县向北平转移,在城北受到日军的袭击,然后转移向保定。第29军第37师奉令南撤时,该师第110旅在宛平至八宝山一线掩护军部和北平部队经门头沟南撤,任务完成后,于30日撤向保定。
30日,日军占领北平、天津,日军独立混成第l旅团和驻屯旅团分别在30日晚和31日进占长辛店西面高地和大灰厂附近地区。至此,平、津作战结束。