恰逢,上海憲兵團獨立炮兵營延伸炮火打擊,日軍各部迅速崩潰,日軍支持不住,爭相潰逃,我軍乘勢追擊,遂衝進碼頭。然而卻無法摧毀堅固的鐵柵門,上海憲兵團一個火箭炮連負責支援,三發火箭彈轟擊大鐵門,隨即大鐵門倒塌。此時,碼頭兩側敵軍發炮轟擊,部隊遭受重大傷亡,宋希濂急令該團撤出戰鬥。這次戰鬥很多官兵壯烈犧牲,死傷570餘人,日軍也死傷千餘餘人。其餘各部激戰一夜,給敵以打擊,但終因攻堅準備不足,又無攻堅製勝武器,敵工事安好無損,攻勢受阻。
次日,宋希濂調來戰車,掩護步兵再度攻抵彙山碼頭,至拂曉,又受日艦強大火力阻擊,乃退回百老彙路北側。撤退途中,我坦克遭敵火力襲擊,惟有的2個戰車連車毀人亡,全軍覆沒。究其原因,除了敵人炮火太過猛烈之外,還在於部隊之前從未進行過步坦協同作戰或演練,步兵根本不懂為坦克提供掩護,以為這黑乎乎的龐然大家夥所向披靡無堅不摧,所以任由其轟隆隆開上前,當日軍炮火的活靶子。
然而,在觀察上海憲兵團坦克攻擊的進攻時,每一輛坦克左右都會有一個步兵班協助,步兵班負責清除對坦克產生威脅的敵軍火力點,而坦克則負責保障步兵進攻的協同作戰,從中午12點25分開始至12點45分時,二十分鍾的時間,上海憲兵團獨立一營和坦克中隊突破日軍三道防線,大量殺傷敵軍,迫使敵軍調動戰機空襲,上海憲兵團防空連五架高射機槍和防空高炮擊落和擊毀日軍戰機二十五架,僅有三架敵機逃脫。
8月22日,雙方開始逐街逐屋進行爭奪,敵數次向第36師212團堅守的複旦大學圖書館陣地進攻,均被我擊退。其間,第36師一度突破敵陣地,奪取了彙山碼頭,但因遭敵艦炮火阻擊,又因敵便衣隊和漢奸乘機縱火騷擾,部隊前後隔絕,失去指揮,混亂中官兵死傷200餘,被迫撤回唐山路原陣地。
8月22日,鬆井石根率領上海派遣軍先遣部隊第3、第11師團,和1個航空母艦戰鬥群,經過數天航行,於這日晚間浩浩蕩蕩增援至上海,23日晨,日軍在獅子林、吳淞口擊潰我江防部隊,強行登陸,就在日軍第三師團和第11師團前部剛剛登陸灘塗的時候,埋伏很久的上海憲兵團督查憲兵部隊第三營首先開火,第三師團前部第九大隊立刻淹沒在第三營的火舌之中,一座座機槍暗堡和哨戒炮不要命的噴吐著子彈。日軍重巡洋艦梔子號向第三營陣地發射大口徑艦炮,部署得當的獨立14加榴炮營、重炮連、獨立11火箭炮營向日軍艦隊發動飽和炮擊,四艘日軍戰艦發生大爆炸,三艘輕巡洋艦沉沒。
日軍無法登陸,便無法支援被圍困的日軍海軍陸戰隊殘部和14聯隊殘部,因此日軍隻得暫緩進攻上海,兵通過外交部力圖實施緩兵之計,但是日軍停戰請求遭到國民政府拒絕,日軍隻得再次強行登陸,然而這次,蔣文特意給鬆井石根挖了一個大坑,也徹底讓日軍陷入被殲滅的困境之中。