5月10日,陈毅、粟裕、谭震林、张震4人署名发布了《淞沪战役作战命令》。
《作战命令》分析了当面敌人的主要情况,指明了第三野战军各兵团的具体任务,特别对直接参加上海战役的第9、第10兵团的作战任务作了详细的布置:
……决以9、10兵团并26军首先包围上海,截断敌之一切逃路,封闭上海物资之窃运,进而全歼该敌或迫敌投降,求得和平解放上海,待命进入上海市区。兹将各部任务区分如下:
第一、10兵团(欠31军)并指挥26、33军,附特纵炮5团、炮6团并工兵1个营,应首先以主力攻占吴淞、宝山,封锁黄浦江口,阻截敌之出口船只运输,其余应分割歼灭昆山、安亭镇、太仓、嘉定地区之敌,而后即控制该带阵地,待命由上海西北地区协同9兵团会攻上海……
第二、9兵团(欠33军)并指挥31军附炮4团,应首先以一部攻占平湖,金山卫、奉贤、南汇、川沙沿线阵地,断敌由沪向东南逃窜之退路,并割歼嘉善地区之敌,其余主力视机控制青浦、松江(均不含)以西地区,而后待命由东、南、西三面协同10兵团会攻上海……
第三、作战分界线:苏州河,即吴淞江(不含)以南及浦东属9兵团,苏州河(含)以北及闸北吴淞属10兵团。
《作战命令》还明确了各军在完成占领上海后的警备任务分工。
三野发布的作战命令似无数支火炬传向严阵以待的战斗部队,把广大指战员高涨的战斗火焰烧得更旺。各军指战员克服连日阴雨、道路泥泞、时间紧迫等困难,按照《战斗命令》要求,迅速进至战斗出发地待命。
5月23日晚,三野首长决定,从四面八方对负隅顽抗的上海守军发起总攻。
西线兵团。总攻上海的命令一经发出,所属各部即开始对所处敌军发起猛烈进攻。一时间,枪炮声大作,震耳欲聋。5月21日7时30分,为了保住失去月浦街后,屏障吴淞和宝山的最后一个支撑点,位于月浦镇东南的25.32高地,汤恩伯命所部兵分3路,在飞机、坦克的掩护下向月浦镇东南的27.1高地发起反攻。阵地在敌强大攻击之下失守。同日,担负主攻25.32高地任务的第253团在牺牲69名战士后,向前艰难前进1公里。5月22日,第253团完成迫近作业,将战壕挖至距25.32高地200-300米处。5月23日清晨8时,敌人向第253团阵地实施陆、舰、空全方位炮击,第253团伤亡惨重。5月22日,苏州第三野战军司令部。粟裕、张震接到情报:汤恩伯和陈大庆已将指挥所移至吴淞口外军舰上,苏州河以南敌人正渡河北去,向吴淞收缩。根据以上情况,粟裕、张震断定敌人将撤出上海,于是命令:全线所有部队于当晚发起攻击,第一步和第二步攻击计划,同时进行。
浦东战场。5月23日,位于第31军右翼的谢振华第30军重炮团赶至黄家湾以西地区,对高桥以东海面之敌舰猛烈轰击,击中7艘,其余敌舰逃遁,这样第30军控制了东翼的海面。5月24日,刘飞第20军主力占领浦东市区,之后集结于高昌庙渡口,准备西渡浦江,攻占上海南市。5月24日夜,第30军第88师突入高桥镇东前沿。5月25日晚18时30分,第31军从正南方向向高桥发起攻击,一时间,万炮齐发,火光飞腾,烟柱冲天。跟着,小包炸药不断在敌堡前连续爆炸,响声此起彼伏。突击队员们立即穿越层层敌堡——有的战士不管侧翼和背后敌堡敌人的火力怎样射击,干脆从堡群的隙间向前冲。有些敌堡来不及解决,就留下一部分兵力予以监守,大部队则继续攻击前进。与此同时,第30军正奉命由高桥镇东向西钳形配合。战至午夜,第30军攻占承园敌第12军军部。浦东守敌全线崩溃,纷纷向三岔港、德士古码头、吴凇口外边逃窜。
西线战场。5月22日,第33军奉命率第97、第98师、军山炮营配合第28军共同担任攻歼杨行守敌的任务。很快,97、98师进入指定阵地,并于24日向杨行镇外围阵地发起攻击,并突破敌阵地。5月23日,第28军也向杨行外围张宅发起攻击。经过几天激战,5月26日凌晨,杨行一带残敌向吴淞收缩。第28军的第83师沿蕴澡浜北岸向东攻击前进。第84师沿杨行至吴淞的公路追击。5月26日上午9时,张克侠、韩念龙率领的第33军与第28军会合吴淞。5月25日夜,胡炳云的第29军及第33军第99师开始全面出击。各种火炮齐声吼叫,巨大的轰鸣震耳欲聋。第29军的出击线距宝山县城仅5公里,距吴凇口不到10公里。出击令一下,人人奋勇当先,潮水般向宝山、吴淞门方向席卷而去。26日拂晓,第85师胜利占领宝山县城,俘敌7000余人,并缴获江面敌舰一艘。与此同时,第86师一部和第85师第253团全部,在拔掉前进通道口敌堡以后,迅速以摧枯拉朽之势,直插吴淞镇。守敌一触即溃,吴淞镇被攻克。
浦东、西线战斗正激烈进行之时,策应西线主力作战的第26军一刻也未空闲;自5月18日起,该军对困守刘行以南至南翔以东一线的敌阵地开展了“剥竹笋、削萝卜”式的攻击。
上海外围战役即将结束之际,准备参加上海市区作战的人民解放军第20、23、27军也已分别进入攻击位置。