三野7兵团第23军先头师于5月24日投入市内。9兵团第20军主力亦于24日夜从高昌庙龙华一带西渡黄浦江,至午夜1时,各路大军即在市中心跑马厅会师,占领大部分市区。25日上午10时已全部控制苏州河以南市区,并占领苏州河上的3座桥梁,攻入河北地区。至此,苏州河北之敌极度混乱,恐慌万状。
负责指挥残敌作战的淞沪警备副司令刘昌义在人民解放军强大的政治攻势下,于25日和26日,率其所部21军、51军、123军残部共4万余人,在真如、大场等地向解放军投降。
25日晚全线继续猛攻,东西两兵团对吴淞要塞发起总攻。10兵团直扑吴淞,9兵团强渡苏州河指向江湾杨树浦地区,以共同会歼敌之主力。26军于25日晚至26日晨先后攻占真如、大场、江湾、江湾车站、国民党京沪杭警备司令部、淞沪警备司令部等许多重要据点及广大市区。浦东方面,31、30两军26日晨全部肃清高桥地区之敌。
浦西方面,29、25两军于26日晨2时占领狮子林炮台,晨4时攻占宝山县城和吴淞镇,俘敌13000余人。33军攻占杨行。27军于27日午受降最后一批大股请降之敌230师全部于杨树浦。至此中国第一大城市上海全部解放,淞沪作战胜利结束。
口口声声要坚守大上海6个月,要与上海“共存亡”的蒋介石和汤恩伯,压根儿就没有想到人民解放军仅用了不到十多天的时间就攻占了上海外围阵地,并从部分地区突进了市区。他们顿时慌了手脚,蒋介石急忙从复兴岛逃到吴淞口外的军舰上,汤恩伯也于5月24日下午把京沪杭警备司令部转移到停泊在吴淞口的军舰上,随时准备逃跑。
眼见上海是守不住了,蒋介石授意汤恩伯想办法把嫡系部队从上海撤退出来,以保存所剩不多的残余力量。
于是,汤恩伯秘密指示嫡系各军及特种兵部队悄悄向吴淞口码头转移,准备登船撤退。截至5月26日,除第37军被解放军分割在苏州河北岸未接到撤退命令外,属于蒋介石嫡系的第12、第52、第54军已先后登船撤离了上海。
为掩护嫡系部队撤退,汤恩伯玩弄花招,把一些杂牌部队派到第一线去接替预计要撤退的嫡系部队的防务。5月24日夜,汤恩伯以调整部署的名义,下令将非嫡系的第21军与嫡系第52军换防。21军奉命于第二天拂晓前接替了52军在月浦、杨行地区的防务。
在接防过程中,21军途经江湾、吴淞道,看到这里人山人海,车辆物资堆积如山,秩序非常混乱。他们虽然知道情况紧张,但还未察觉出汤恩伯和52军已准备逃跑,因此非常认真地执行汤恩伯的命令,到了前线后就连夜加固工事,当解放军发起进攻时,他们还作了顽强抵抗。
直到第二天晚8时,21军军长王克俊得知汤恩伯的逃跑计划后,急忙用电话通知21军各师、团长以开会名义到军部集合,然后抛下部队,带着这些亲信登船逃走了。这时,在前线的21军官兵仍被蒙在鼓里,还在进行徒劳无益的抵抗。直到汤恩伯派到21军担任联络的高参周屏中到各团进行劝降,这些官兵们才知道汤恩伯和他们的军长、师长、团长抛弃他们逃走了。他们气愤地破口大骂,随即停止抵抗,在周屏中的联系下,向解放军集体缴械投降。
关于撤退的蒋军嫡系部队的狼狈混乱情形,从第54军第291师的局部情况中,可见一斑。5月25日中午,291师奉命由浦西大场阵地开赴江湾、吴淞间的张华浜码头上船,并限令在下午8时以前赶到。291师师长吴世英接到命令后,马上集合所属团长、营长,对他们说:“现在情况紧急,我们马上就要走了。根据上司的命令,在阵地上的只救营长以上军官,部队都不管了。能带走的部队都要轻装。不能带走的骡马、弹药、行李等一律销毁,不要被共军利用,部队行动愈快愈好。”
这些团、营长接到命令后,立刻回去集合起部队,夺路向张华浜码头疾进。由于沿途道路被车辆、物资和乱军拥塞住,291师官兵在中途被冲散走失了不少。
291师第873团团长何轩叶率部在逃跑中,见市郊到处都有房屋焚烧,溃散官兵像热锅上的蚂蚁,部队在离码头十几里处就被堵得走不动了。何轩叶干脆抛弃部队,和副团长、几位营长带着一个警卫班向着码头冲去,挤了2个多小时,好不容易才跑到码头上。这时,张华浜码头已在解放军的炮火控制之下,许多船只为躲避炮击都开到吴淞口外去了。何轩叶等人只找到一艘机器有故障的登陆艇,不管三七二十一,与千余名溃兵一起拥上船,强行开船。结果,这艘登陆艇行驶到吴淞口就搁浅了。何轩叶等人终未能逃走,都当了解放军的俘虏。
蒋介石得知上海全部解放后,于5月28日乘飞机由定海飞抵台湾冈山,再转高雄寿山。