就在白崇禧率领国民革命军进入上海的同时,国民革命军对六朝古都,孙文成立中华民国后的首都南京,也逐渐形成了包围的态势。
南京在中国历史悠久,相传在周朝已经成为周王室的封邑。楚国在灭掉越国之后,将原先的石头城改名为金陵邑,南京城初部建成雏形。三国时期,东吴大帝孙权建都于此,取名为建业。再以后到南北朝时期,一直为南方政权东晋、宋、齐、梁、陈的首都。明朝朱元璋曾定都南京,后朱棣在靖难之役后,窃取政权,定都北京,改南京为留都,属南直隶。清代南京改名为江宁,并将南直隶一分为二,以四个大城市的首个名字分别命名为二个行政省份。西面以当时的大城市安庆和徽州起名为安徽省,东面则以江宁和苏州起名为江苏省。
南京虽说地处江苏省境内,但是由于地域的关系,反而在经济等方面与安徽省更加融合。在安庆还没有成为安徽省省会之前,南京曾一度是安徽和江苏二个省的省会所在地。
包围南京的国民革命军,由江左军和江右军组成。江左军的总指挥是李宗仁,率部沿太湖、潜山向南京方向攻击前进。江右军的总指挥是程潜,率部由皖南向安庆、南京方向攻击前进。
根据当时的战场态势,江右军的兵力是这样部署的:以第6军第17师杨杰部为左纵队,西沿长江右岸,向芜湖、南京攻击前进。以第6军第19师杨源浚部为中央纵队,左与左纵队联系,向芜湖、南京攻击前进。以第2军为右纵队,经石埭、高淳、溧水、向南京攻击前进,左与中央纵队取得联系。以独立第2师贺耀祖部为总预备队,随左纵队前进。作战重点在左纵队,第一期的作战目标为芜湖、高淳。
就在国民革命军紧锣密鼓地行动时,孙传芳的部队由于连战连败,加上国民革命军的凌厉攻势,内部也开始逐渐瓦解分化。乘国民革命军攻入安徽之时,孙传芳的第15师在师长刘宝题率领下在徽州起义,并就任国民革命军新编第3军军长兼江右军第4纵队指挥官。江右1纵队与江左军从赣北、鄂东分途向安徽前进,连克香口、秋浦、贵池等地。与此同时,江左军在李宗仁率领下,也分别推进到太湖、潜山等地。长江下游江北的第一个大城市安庆,已处在国民革命军的战略包围之中。
北洋政府安徽省省长陈调元表面上忠于孙传芳,实则貌合神离。当他看到胜利已经开始向国民革命军一方倾斜时,在蒋介石的不断争取下,于3月4日正式改旗易帜,在芜湖宣布就任国民革命军第37军军长兼北路总指挥。随后在皖南的王普、叶开鑫也相继宣布加入国民革命军,分别就任第27军军长及新编第5军军长等职。至此,长江北岸重镇安庆及皖南大片地区不战而定。
3月6日,程潜指挥的江右军第1、3两纵队分水陆两路进攻芜湖。6日下午4时左右抵达芜湖附近,孙传芳的部队和直鲁联军不敢迎战,向当涂方面撤退。江右军完全占领芜湖。
与此同时,江左军由鄂东地区向安庆方向进发,于3月上旬进驻安庆,中旬全部到达六安、合肥一线。至此,战势已经逐渐明朗,南京已处于国民革命军三面包围之中,攻克已经指日可待。孙传芳的主力余部仓皇退至江北,集中于苏北运河两侧的高邮、如皋等地。南京城内,只有直鲁联军还在准备负隅顽抗。部队由第6军军长褚玉璞指挥,在南京各要塞,均架有大炮并以重兵防守。
经决定,会攻南京的任务,由东路军和江右军来担任,其中江右军为攻打南京城的主力。江左军则从战略上牵制南京以北的联军,策应南京方面国民革命军作战。李宗仁所部第7军联络北路军总司令陈调元,并与刘佐龙所部第15军,王天培所部第10军,奔袭蚌埠,以切断敌方之战略交通杻约。
3月20日,程潜命令所属各部,向南京外围发起总攻。21日,贺耀祖部攻克秣陵关、陶吴镇。同日,1纵队和2纵队分别攻占江宁镇和龙都镇。22日,2纵队占领淳化。接着,南京城郊的将军山、牛首山一线也被1纵和3纵攻占。此时,东路军也到达镇江。北伐三路大军兵临南京城下。
此刻,南京城内已经一片混乱,人心惶惶,人们争先恐后地沿着沪宁铁路逃往上海。23日,第2纵队进迫中山门、光华门。第3纵队向武定门、通济门进攻,第1纵在占领雨花台要塞后,乘胜威胁中华门。此时,东路军的先头部队已经抵达栖霞街、东流镇、汤水镇一带。褚玉璞,这位曾经身先士卒,手舞大片刀,赤膊冲锋在前的猛将,眼见大势已去,恐怕重蹈武昌刘玉春的覆辙,急命放弃南京,从下关抢渡过江。
3月24日,6万国民革命军开始进入南京城。此刻,尚有3万余名名直鲁联军未及撤退,零星战斗时有发生,针对外国人的排外抢劫行为也随处可见,从上午8时至下午5时,城内各处外国领事馆、侨民住宅及外国教堂、商店、学校等都遭到军人的抢劫,英国驻南京领事Herbert A.Giles和日本领事森冈正平都被枪击,造成在南京的外国人有6人死亡,数十人受伤。
南京城内的混乱,造成了居住在南京的外国人的极大不安,纷纷逃往停泊在长江上的各国军舰要求保护。
当日下午,英美共3艘军舰开炮,对南京进行报复性轰击,造成数百到数千无辜南京市民的死伤,这就是著名的南京惨案。
国民革命军也不示弱,随即开炮还击,击伤了一艘英国军舰,造成一名英国水兵死亡。
南京惨案发生后,武汉国国民政府发表声明予以强烈谴责,指出英美军舰炮击南京“为万国公法,为文明国通例所严禁”。一时间,各种传说纷至沓来。有的说排外抢劫行为是直鲁联军溃兵所为。有的说是国民革命军所为,有的说鲍罗廷和中共是幕后推手。而英国报纸均认为南京事件“党军应负责任,南京所发生之事项,系为预定之计划。”英国的《字林西报》撰文称“蒋介石本拟将南京作为彼之军事中心,以与武汉对抗,是以共产党强迫行事,使蒋不得到南京”,并认为“蒋介石去上海设法阻止共产党有同样之行动”。
与此同时,上海警备司令白崇禧下令:工人旦有扰乱,驻军必将负责缴械。陈独秀和周恩来等人商议后,表示拒不执行,并于3月29日请示苏联,准备必要时武装对抗国民革命军。然而苏联从自身角度考虑,表示暂时不应该武装对抗,还要工人纠察队暂时藏起武器。周恩来、罗亦农等人瞠目结舌,一时之间竟不知所措。最后,只好由陈独秀作为中共的领袖传达了苏联的命令。
南京卫戍司令部,国民革命军第6军政治部主任、中共党员林伯渠,匆匆从武汉赶来,急切地会晤南京卫戍司令程潜。
“颂公,职此次从武汉过来,是代表国民政府,有紧急事务要与您老商量。”程潜字颂云,因此林伯渠尊称其为颂公。
“伯渠,有何紧急事务?”林伯渠名祖涵、字邃园、号伯渠。
“国民政府觉得蒋介石终将背叛革命,因此国民政府特派职赶回第6军,准备联合军内的左派人士和中共党员。采取断然措施!到时,还望颂公能够大力支持。”
程潜听完林伯渠的话,已经明白林伯渠话中采取断然措施是什么含义了,那就是必要时先下手为强,逮捕蒋介石。程潜明白,虽然现在武汉国民政府罢免了蒋介石的一切职务,仅保留国民革命军总司令一职,且这个总司令的职权也已经大大地缩小,但他知道,蒋介石通过黄埔学生已经统帅着十几万的精锐部队,况且自己的第6军各级军官中,就有很大一部分是黄埔学生,万一激生事变,后果可是难以预料的。
“伯渠啊,我认为我们现在首要的任务就是北伐,统一全中国。在此关键时刻,我们内部切不可内讧,给他人有可乘之机!”程潜婉言谢绝了林伯渠的提议。他知道林伯渠是国民党员,但并不知道林伯渠还是共产党员。
此时,国共双方虽然统一在国民革命的大旗之下,但各地自下而上的摩擦却越来越激烈,越来越公开化和表面化。
3月30日,在浙江杭州,黄埔同学会和联合工会同共产党的工人纠察队发生流血冲突,工人纠察队的总工会大楼被冲砸。工人纠察队随即组织工人游行,游行队伍遭遇国民革命军士兵的开枪射击,死伤数人。
3月31日,四川重庆的中共党员组织工人进行声讨南京惨案的运动,目的是攻击列强和蒋介石,结果遭到四川省长刘湘的镇压。工人纠察队全部被击溃,死亡400人左右,中共控制的农会和总工会都被捣毁,四川各地首先开始了逮捕共产党员的行动。