7月27日凌晨3时,日军在实施总攻之前,在空军支援下,部分陆军首先对第二十九军驻通县、团河和小汤山等部队发动袭击,并占领了这些要点。中国军队死伤大半,只好突围撤退。面对危局,宋哲元再次电请蒋介石,要求速派大军兼程北进,以解北平之围,蒋介石立即复电:“请兄镇静谨守,稳打三日”,“严令各部,加深壕沟,固守勿退,中央必星夜兼程,全力增援也。”
宋哲元通令二十九军各部奋勇抵抗,指示北上的第四十军向静海、独流镇集结,以策应天津;第二十六路军进驻长辛店、良乡,以支援北平。
7月28日黎明,日本驻屯军在香月清司指挥下,对驻守北平的第二十九军发起总攻。日军以二十师团为主力,配以重炮40门,向南苑大举进攻。时第二十九军驻南苑部队有三十八师、骑九师和军特务旅共5个团,约七千余人,前敌总指挥为第一三二师师长赵登禹。赵登禹在27日傍晚赶到南苑后,立即部署应敌方案,并急调其所辖的第一、第二旅到南苑参战。
日军借着黎明的夜色,以第二十师和驻屯步兵旅主力突然从东、南、北三面向南苑发起猛攻,还出动40架飞机,对中国守军的工事轮番轰炸。两军从黎明一直打到日落,日军狂攻不止,中国军队拼死抵抗,无一后退。
由于冀察当局事前的妥协,整个平津前线放松了战备,事先没有构筑工事。所以,当日军展开总攻时,中国军队已来不及建造防御工事,整个部队被包围在狭小的营区内,仅凭围墙作掩护,进行抵抗,由于日军以优势炮火和飞机狂轰滥炸,营区围墙全部被毁,官兵血肉横飞,目不忍睹,整个军队首尾难接,秩序大乱,无法统一指挥。南苑为二十九军军部所在地,副军长佟麟阁率领守军卫队旅和军官教导团等部两千余人与一三二师师长赵登禹部合兵一处,冒着敌人的密集炮火,奋勇抵抗。聚集在军营里的近千名学生和爱国人士也众志成城,和将士们一起浴血奋战。战斗越来越激烈,日军的炮火越攻越猛,中国军队的官兵成堆成堆地倒地阵亡。战斗中,赵登禹师长右臂被炮弹炸伤,部属劝其退出阵地,他执意不肯,继续作战,后来他的腿部等多处被击伤,血流不止,卫兵要背他撤出阵地,他仍然拒绝,并对卫兵说:“不要管我,告诉北平城里我的老母,忠孝不能两全,她的儿子为国死了,也对得起祖宗!”
此时的军营已被炸成一片废墟,阵地难保,官兵死伤更大。在5个多小时的惨烈战斗中,中国守军已伤亡两千多人。战斗至下午,佟麟阁、赵登禹奉命率部向大红门突围,但没走多远,便被日军包围。双方短兵相接,展开一场白刃战。副军长佟麟阁在指挥右翼部队向日军突击时,被敌人机枪击中腿部,当场扑地。部下劝他退下阵地,但他执意不肯,并说:“情况如此紧急,我怎好一个人退去,个人安危事小,抗敌事大!”正在这时,日军的飞机在他身旁扔下了一枚重磅炸弹,弹片飞起,佟麟阁头部被击中,流血过多,壮烈殉国。这是中国军队在抗战中殉国的第一位高级将领。
佟麟阁牺牲后,师长赵登禹拖着伤残之躯继续指挥余部阻击敌人。但行至黄亭子时,被日军击中胸部,赵登禹也壮烈殉国,南苑落入敌手。
日军在进攻南苑的同时,昌平、高丽营的日军在飞机配合下,分向沙河、小汤山、北苑一带猛扑。二十九军所部在战事失利的情况下仍浴血奋战,临近傍晚才向县城退却。为扭转被动局面,武清方面的中国军队进行反击,向廊坊展开攻势,切断敌人后路,威胁其侧背,独立第三十九旅曾迫使进攻北苑的日军转攻黄寺;伪冀东保安队亦举义反正,投入抗日救国前线,并一度占领通县县城。但是,在日军增援反攻下,这些部队均被迫撤退。
正在北平铁狮子胡同进德社商讨战事的宋哲元、秦德纯、张自忠师长等人,忽见在南苑抗敌的骑兵师郑大章师长服装不整地仓皇来报:“佟副军长、赵师长阵亡,我官兵伤亡特重,骑兵师伤亡过半,余部已退往固安,日军大有围攻北平之势。”宋哲元等见大势已去,匆忙商量行动方针,决定了两个方案:一、留四个团防守北平,由秦德纯负责指挥。二、留张自忠师长率所部在平津与日人周旋,宋哲元、冯治安师长同秦德纯到永定河南岸布防。
正在这时,蒋介石发来急电,命宋哲元移驻保定,坐镇指挥。宋哲元立即决定将平津防务、政务交张自忠负责,自己于7月28日晚9时,率同冯治安师长及副军长秦德纯等由北平西直门经三家店至长辛店,然后转赴保定。第三十七师等部亦奉命于当晚经门头沟开始南撤,何基沣旅担任掩护。当任务完成后,该旅退往涿县。至此,北平乃落入日军之手。
宋哲元到达保定后,奉中央电令,任第一集团军总司令,并将所部开赴津浦铁路北段沧县、青县一带,阻敌南下。此时平汉铁路北段保定及其以北地区涿州、良乡一带,已由孙连仲将军所部防守。宋哲元整顿好兵马后,即派秦德纯、石敬亭两位将军赴南京报告战况。有一部分国民党要员得知北平陷落后,大为不满,认为应对宋哲元从重惩处,一时空气颇为紧张。后经蒋介石出面说明,空气才稍有缓和。蒋介石说:宋将军在北平支持危局,任劳任怨,得保全国家领土主权之完整,使中央有两年时间准备防务,这是宋将军对国家的贡献。否则,华北在两年前已非我政府所有。此后,蒋介石又让秦德纯转达宋哲元:“应特别努力作战,因此次战役,并非一城一地之得失,胜负亦非短暂时间所能决定,务望艰苦支撑,历久不懈,方是制胜要诀。”
北平失陷了,和北平唇齿相依的天津也遭到了同样的厄运。
当日本军队主力集中在北平地区作战时,天津仅有日军五千余人,分别驻守在海光寺、天津各火车站和东局子飞机场等处。第二十九军在天津的部队有第一一二旅和二十六旅等部。第三十八师副师长李文田接到宋哲元“自守卫土”的通电和北平守军克复丰台的消息后,立即召开紧急军事会议,决定集中第三十八师驻津部队和天津保安队,乘势向天津日军出击。29日凌晨,第三十八师和第二十六旅、师部手枪团和天津保安队等,在李文田指挥下,分别向海光寺、天津各车站和东局子机场等处日军发起进攻。各攻击部队很快袭入飞机场,烧毁日机十余架,并攻占了天津总火车站和东站。日军司令官闻讯后,立即抽调北平第二十师的4个营及关东军堤支队增援天津,并以临时航空兵团对中国军队进行狂轰滥炸。在日军轰炸和猛烈炮火反击下,第二十九军转攻为守。经过15个小时的战斗,部队伤亡惨重,终于30日放弃天津,向马厂方向撤退。至此,天津宣告陷落。
平津之战,日军经小战而轻易取胜,固然有日军在武器装备上强于中国军队等客观因素,但从主观来看,蒋介石以及国民政府负有不可推卸的责任。当卢沟桥事变发生后,蒋介石仍希望谋求和平解决,实际上的抗战决心不大。虽曾调兵北上,但部队行动迟缓,贻误了战机,从而导致了平津迅速落入敌手。