日军缓慢但顽强地向前推进,前锋已进至蕴藻浜以南五公里处。如果战线再次崩溃,日军便可直抵大场,中国守军将面临退路断绝的危局。中国军队所能承受的极限,也是日军必须同时承受的,在这种胶着状态下,谁能够拼尽最后的气力,谁就可能占据主动。中国第三战区决定对日军发动大规模的反击作战。这一计划得到了副参谋总长白崇禧的支持,并决定反击作战主力由新近投入战场的桂军第四十八军担任。
十月十八日晚九时,中国军队反击作战命令下达。各集团军接到命令后立即开始部署:二十一集团军总司令廖磊以第四十八军第一七四师为第一攻击军的一线师,第一七三师为二线师,均归四十八军军长韦云淞指挥;第十九集团军总司令薛岳以第六十六军第一六0、第一五九师各一部组成第二攻击军,由旅长邓志才指挥;第十五集团军总司令罗卓英以九十八师第二九二旅为第三攻击军,由该旅旅长指挥。第一线其他各师各自编成突击队。此次大规模反击作战的主力突击部队,是位于一线的桂军。
李宗仁和白崇禧的桂军,是中国各路地方部队中最具战斗力的。桂军北上抗日的部队,先后编成了三个集团军,即李品仙的第十一集团军、廖磊的第二十一集团军和夏威的第十六集团军。抵达淞沪战场的,首先是第二十一集团军韦云淞的第四十八军,下辖第一七三、第一七四、第一七六师;十月上旬,周祖晃的第七军抵达上海,下辖第一七0、第一七一、第一七二师。广西人性格剽悍,桂军以死拼闻名,其擅长山地作战的特点人人皆知。
二十一日晚七时,中国守军的火炮按照反攻计划全面轰击,大规模的反击作战开始了。在第四十八军的突击方向,陈家行、顿悟寺、桃园浜一线是日军第十三、第九师团的主攻地段。因此,反击作战一开始,中国军队的进攻就遭到了日军猛烈的炮火拦截。 与第二十一集团军同时发起反击的其他各路部队,都因缺乏足够的兵力以及必要的火力支援未能达到作战命令所规定的攻击线。第二天凌晨,中国军队的反击作战显现出败势。日军立即发动了反击。中国军队参加反击作战的各部在日军的攻击下开始后撤。
为堵塞战线裂开的缺口,陈诚调动预备部队补缺,但依旧不能持续支撑。二十四日,中国军队逐次撤退至大场一线。第二天,追击而来的日军猛烈围攻大场。大场及外围阵地由湘军朱耀华的第十八师和旧西北军冯兴贤的第三十三师防守。这两个师刚刚抵达战场,开赴前沿后连简易的野战工事都没来得及构筑,日军便分两路突入,第三十三师不战而溃,第十八师鏖战竟日,身陷重围,援军不至,大场最终陷落,朱师长羞愤自杀。这是上海战事爆发以来第一位在战场殉国的中国师长。
大场失守,上海战局急转直下。由于侧背受到严重威胁,为防止中国军队被日军围歼,第三战区决定放弃现有阵地全面向苏州河南岸转移。 苏州河,一条横穿上海市区的小河,尽管河面只有百余尺宽,浑浊的河水很浅,枯水时几近露出泥浆河道,但在一九三七年的秋天,它却成为中国军队固守上海的最后一道天然屏障。留下的壮士们坚守的阵地,是一栋六层楼房,由于是大陆、金城、盐业和中南四家银行联营的仓库,因此上海人把这栋楼叫作四行仓库。
四行仓库孤零零地立在已被日军占领的苏州河北岸,大楼里事先储存了足够的饮水、粮食和弹药,四百五十二名中国官兵就在这栋被日军围困的大楼里坚守不退。二十七日天亮后,日军发现中国守军已全部退至苏州河南岸,唯独河边这栋楼里的中国守军不但没撤,而且所有的窗口都布置了持枪士兵,这令日军整整一上午都处在困惑之中没能有任何动作。下午,日军试探性地向这座孤楼发动了攻势,在机枪的掩护下,日军一波接一波地冲锋,都被中国守军打了下去。—— 四行仓库三面被日军包围,但南面却是公共租界,日军攻击时既不敢出动飞机轰炸,也不敢动用火炮支援步兵,更无法通过租界地区实施进攻,中国守军背后是安全的,这令日军感到十分棘手。
中国军队第八十八师第二六二旅五二四团一营,坚守四行仓库四个昼夜,击毁日军两辆坦克,让日军横尸二百余具,守军仅伤亡三十七人,一营营长杨瑞符弹穿左胸身负重伤。十一月一日,一营奉命“退去戎服”,退入公共租界。为什么突然放弃坚守而退人租界,原因众说纷纭:有认为是各国使节向中国政府提出照会,要求中国政府出于人道主义考虑,将置于日军虎口下的孤军撤离;也有认为是四行仓库距离租界太近,战事已直接威胁到租界安全,各国不希望战火烧到自己的身边。谢晋元部退入公共租界时,租界里的英军指挥官马勒提少将站在机枪阵地前,护送着中国守军通过了日军的封锁线。
谢晋元的孤军在租界里照常出操和训练,往租界里运送生活物资的学生、工人和市民每天络绎不绝,见到五二四团一营的官兵神情犹如朝拜。一营退入租界一年后,为纪念自己的部队第八十八师出征抗日一周年,官兵举行了升旗仪式。仪式先是受到租界当局的阻挠,被迫把旗杆截短以免让日军看见;仪式进行中,数百英、意和白俄军人突然冲过来,不由分说地开枪射击,四名中国士兵当场死于国旗下,十一人负伤,此事件引发了谢晋元官兵的绝食抗议。
又过了一年,前途未卜的谢晋元给双亲写下遗书,因为预感到不测之日早晚会来,他恳求年迈的双亲在他牺牲后把他抗日将士公墓里。一九四一年四月二十四日,一营照例出操时,谢晋元受到叛徒的袭击,中弹身亡,时年三十六岁。这位誓言至死“不负国家”的中国军人,再也没能见到他的父母双亲,他远在广东老家的妻子,还有四个年幼的儿女。一九四一年十二月,太平洋战争爆发后,因与英美全面开战,日军突入租界将中国孤军全部拘禁,然后将其分遣押解至各地做苦工。