伐军此时重新佈署，东路军由白崇禧率领第1、2、3纵队进攻上海，第4、5、6纵队配合，主力进攻松江之敌。北伐军与直鲁军激战两昼夜，于3月21日夺取松江，上海门户已开。何应钦即命各部向上海进攻，第一师攻佔龙华，第二十六师至梅家街，第二十一师进佔苏州，海军进攻吴淞，上海已为北伐军四面合围。3月21日上海工人在国民党钮永建和共产党周恩来等领导下，发动第三次武装起义，佔领了除租界以外的上海市区，并建立起一支2700人的工人纠察队。3月22日，白崇禧率部进入上海。3月20日，中路军的程潜命包围南京的各部队向南京週边