3月20日,已经攻克滕县的日军矶谷师团集中4万人,在飞机的掩护下,配以坦克、大炮,向台儿庄发动了猛烈的进攻,企图一举攻占徐州。李宗仁命孙连仲率第2集团军固守台儿庄,汤恩伯率第20集团军让开津浦铁路正面,转入兰陵及其西北云谷山区,诱敌深入,待机破敌。
3月23日,日军由枣庄南下,中日两军在台儿庄北侧的康庄、泥沟地区接战。24日起,日军向台儿庄反复冲锋。第2集团军顽强抗击,与日军展开激烈的争夺战。日军猛攻3天3夜,才攻入城内。城内中国守军同日寇发生激烈的巷战。虽然日军占据了全庄的2/3,但是坚守在南关一带的中国守军仍然死守阵地,以争取时间让外线部队完成对日军的反包围。这是李宗仁早已制定好的作战计划:以部分兵力死守台儿庄,尽量拖住敌人,以便外围大军将日寇团团围住,瓮中捉鳖。
28日,日军攻到台儿庄西北角,想要夺取西门,切断中国守军第31师师部与庄内的联系。该师师长池峰城组织数十名敢死队员,与敌肉搏格斗。汤恩伯军团则在外线向枣庄、峄县日军侧背攻击。29日,日军濑谷支队占领了台儿庄东半部。31日,中国守军将进入台儿庄地区的濑谷支队完全包围。