孙传芳闻知南京政治危机,乘宁、汉尚未妥协,于是倾其“五省联军”全部剩余力量11个师、6个混成旅共计7万余人,加上张宗昌直鲁联军一部,号称“雄兵十万”,卷土重来,兵分三路渡江会攻南京。不过张作霖在孙传芳徐州反攻胜利后曾召开军事会议,决定暂时应该以经营江北为主,待革命军内部发生重大变化之后,再伺机进取江南。然而孙传芳已经杀红了眼,非要一鼓作气夺回江南不可。8月17日,孙军占领浦口后即与南京狮子山炮台的革命军隔江炮击。21日,武汉方面的东征军又占领了安庆,使南京政府处于极为被动的局面。
南京军委会这时已由李宗仁、白崇禧、何应钦主持,一切军令由他们三人签署发布。为巩固长江防线,南京军委会曾在8月19日开会,决定将驻在江北的军队撤回江南,以阻击孙传芳军队南渡。何应钦指挥第一路军,辖第一、第十、第十八、第十四、第二十六及第三十一等军,担任南京城东部乌龙山以东至淞沪一带的防务;白崇禧指挥第二路军,辖第二十七、第三十七、暂编第十、暂编第十一等军,担任东西梁山以西长江上游的防务;李宗仁指挥第三路军,辖第七、第十九、第四十、第四十四各军,担任乌龙山以西,东西梁山以东、长江中段的防务;前敌总指挥陈调元,驻于芜湖。此外,海军总司令杨树庄指挥第一、第二舰队,以主力警戒南京和江阴间的江段,另以一部船舰游弋南京上游。
南京政局动荡,战事日紧,军需更是紧张,于是再派白崇禧到上海筹饷救急。为安定上海局势,争取上海各阶层的支持,军委会任命白崇禧为淞沪卫戍司令,白则以自己的参谋长张定璠充任上海市长,取消了蒋介石的亲信陈群、杨虎担任的警备司令职。白崇禧到上海时,上海人心惶惶,多数人家准备五色旗欢迎孙传芳。经白再三交涉,上海银行团勉强借给南京政府60万元,以充军饷。
蒋介石的下野,使武汉方面派军队东下讨蒋失去了借口,李宗仁、何应钦电请汪精卫、唐生智停止东下之师,并派桂系将领胡宗铎前去迎接汉方要员来南京办公。汉方汪精卫等见蒋介石已下野,李宗仁又有如此表示,即于8月19日召开党政扩大会议,决议中央党部、国民政府迁往南京。同日,发表《迁都南京宣言》,其中称:“4月中旬,蒋介石等在南京自立中央党部及国民政府,陷本党于分裂。今蒋解除兵柄,听命于党,李宗仁等复请中央党部及国民政府迁都南京,兹经中执会扩大会议议决,即日迁都南京。”8月20日,汪精卫、谭延闿、孙科、程潜、唐生智、顾孟余等汉方要员到达庐山,与胡宗铎面谈,并电请宁方李宗仁、白崇禧、何应钦等前来会商。由于国民党在南京的大佬全部离开,形成政治真空。李宗仁虽说在党内资历较浅,但无形中成为了宁方的主帅。
8月22日,李宗仁到达庐山牯岭,表示欢迎汉方军政要员来京“共商大计”,并请汉方出兵协助抗击孙传芳。他认为,蒋介石已经下野,孙传芳军正在南京上下游一带隔江相峙,武汉的军队如仍东下,无异为军阀张目,势必引起南京方面极大的不安和误会。因此,他坚决要求武汉的军队立刻在安庆一带停止前进,以释群疑;并希望能有几位中央大员同他到南京,以安军心。冯玉祥所派的代表刘骥也参加了会谈。
对于李宗仁的要求,汪精卫予以同情,认为李所陈各点非常合乎情理,转而恳请唐生智把东下的部队停留在安庆。谁知唐生智竟斩钉截铁地说:“我的部队绝不能在安庆停止……至少要开到芜湖!”唐还说:“我可不管什么军心民心惶惑不安啊!”“我有我的计划,别人用不着管!”这本身又表明,此时汪精卫已失去控制武汉方面的能力,无法驾驭坐拥重兵的唐生智。经过李宗仁和汪精卫、唐生智等的激烈辩论和讨价还价般的反复协商,双方议定:武汉政府主席谭延闿与孙科先期赴宁,以示“宁汉之间误会已冰释”,借此安定人心;武汉政府于9月3日前迁往南京,与南京政府合并,在宁筹备召开二届四中全会,武汉改设政治分会;程潜部第六军全部东下,陈嘉祐部第十三军由赣入皖,偕同江左、江右何键及刘兴军向皖北出击,会同宁军肃清津浦南段的孙传芳和张宗昌的直鲁联军。
李宗仁九江之行,已稳住了汉方,避免了两面受敌。但这时孙军渡江已经开始,汉方援兵来不及到达,南京危在旦夕。孙传芳军主渡江点是大河口和划子口。划子口对岸便是栖霞山、乌龙山炮台,占领该处山地,一则可以掩护登陆部队,二则可以威胁南京。而且京沪铁路以东地区,田坎都成南北方向,登陆部队即可用作进攻的天然掩体。
8月24日白天,孙传芳军在兔耳矶佯渡,故布疑阵,吸引南京主力于长江上游,以掩护从下游乘虚偷渡长江。那天,正好李宗仁陪同谭延闿、孙科自九江乘兵舰去南京,途经大胜关附近,被孙传芳在那里渡江的帆船团团围困,情况万分危急。恰巧陈调元的军船从南京上驶,与李宗仁所乘兵舰协同作战,连谭延闿也持枪瞄准射击,才将孙军击退。
李宗仁抵达南京,首先命令第十九军肃清在兔耳矶渡江的孙军,又指令夏威将驻南京近郊的总预备队8个团,调往乌龙山后方集结,准备应援。25日夜,孙军乘驻守阵地的第一军部队正在换防之机,在八卦洲、十二圩等处向燕子矶及镇江等地偷渡成功。夏威部队刚到,忽遇北军,仓促应战,失去炮台4座,死守其余3座。拂晓后弄清了敌情,此时援兵到达,开始反攻。到中午时,将所丢失的炮台全部夺回,乘势向东扫荡,克复了栖霞山,交还第一军防守,夏威第七军仍回原防。
26日,孙军击溃第一军第二十二师,占领龙潭车站及栖霞山、乌龙山部分阵地。第一军全部向南京后撤,孙军跟踪追击,绕出乌龙山右侧,有包围夏威第七军之势。李宗仁见情况紧急,电令夏威自乌龙山阵地向东出击,夺回栖霞山一部分阵地。26日,孙、夏两军在栖霞山麓一带高地反复冲杀一昼夜,双方寸土必争。战场上炮火弥漫,双方死伤惨重,尸体狼藉。激战到27日清晨,栖霞山麓一带高地全被夏部攻克。孙传芳残军退据山顶,死守待援;夏部将栖霞山合围。栖霞山坡峻岩高,攀登不易,而孙军残部数千人,困兽犹斗,居高临下,枪炮和檑石滚木兼用。夏部师长李明瑞看硬攻困难,亲自率领敢死队,攀藤附木,奋勇冲锋,终于收复栖霞山,山上几千北军俯首就擒。据李宗仁回忆,当李明瑞率队冲锋时,长江中正好有几艘英国军舰停泊观战。见孙军退到山顶,形势危急。为挽救孙军,英舰竟不顾国际公法,向半山上的夏威部军队开炮,一时间炮声隆隆,烟雾蔽天,整个栖霞山被烟雾笼罩。山顶孙军视界不清,射击效果反而很差。李明瑞于是乘烟幕一跃登顶。
白崇禧则回忆说,海军与孙军互相炮击,恰好有一英国军舰经过江中,也遭到炮击。英舰不知是哪一方发的炮,为了泄愤,就猛烈地炮击黄龙山(实即栖霞山阵地),孙军阵地多半被毁,第七军才能乘势冲上山顶。到此为止,在乌龙、栖霞一带渡江的孙军被全部歼灭。
龙潭正在激战时,何应钦不顾南京的安危和人心的涣散,准备率领所部向杭州方向撤退。李宗仁发现这一动向,亲往何应钦总指挥部探视。他见何的部下正在搬运行李,就对何说:“首都存亡所系,你不能一走了事!”见何还在迟疑不决,李宗仁辞色俱厉地说:“敬公,你真要走,我可对你不客气了!”然后他又劝何应钦说:“你的军队不能打,让我的军队来打,好吗?我们生要生在一起,死也要死在一起。你绝不能离开南京!在这紧要关头,你一走,必然影响民心军心,南京就守不住了。”李宗仁的竭诚恳求,使何应钦也感到事态严重,无可推诿,只好同意与第七军协力御敌,命令第一军停止退却,准备反攻。
当栖霞争夺战正在激烈进行之时,龙潭也被孙军占领,镇江、高资之间,也有大批孙军南渡,高、镇、京、沪间的铁路及电讯交通全部断绝。25日晚,白崇禧从上海返回南京途中,被阻于无锡、镇江之间。白崇禧知南京战事紧张,临危不乱,在无锡就地指挥,电令驻京沪路东段的第一军第14师师长卫立煌率部向龙潭反攻,同时电令正在从常州开往杭州的第一军第2师刘峙,回师往援。
26日晨,被逐出龙潭火车站的孙军仍据守江边,掩护大批北军渡江,再行反扑。白崇禧马上从无锡乘车赶往镇江,命令沪杭路的第一军第1、3、21等师星夜驰援,谁知援军未到,龙潭于8月28日晚再度失守,栖霞山也同时为孙军再次攻占。在这紧急关头,李宗仁督率第七军与第十九军再次夺回栖霞山,并以军委会名义致电白崇禧,约定日期东西两面同时夹攻龙潭的孙军。
29日晚,何应钦部第一军的王俊、顾祝同、陈诚的第1、3、21等师援军均已到达龙潭附近。30日拂晓,李、白、何三路军实行全线反攻。李部第七军的第1、3两师和第十九军的第1、2两师在夏威和胡宗铎指挥之下,从栖霞山向东进攻,沿铁路及江边前进,目标为龙潭、镇江及青龙山、黄龙山的孙军阵地。何应钦指挥第一军的第2、22、14师的一部,从东阳镇出发,会攻龙潭。
此时,孙军已渡江的部队,和栖霞山等地溃败下来的残部,都聚集到龙潭一带,计其兵力,有孙传芳联军的第二、四、七、八、九、十、十一、十二、十三、十四等师,及第十五、二十七、二十九、补充第一各混成旅,约达6万余人。依据龙潭以西的黄龙山、以南的青龙山、虎头山,和东西的大石山、雷台山等险隘,编成坚固不拔的根据地,严阵以待,进可以攻,退可以守。孙传芳驻节水泥厂,亲自督战。其悍将李宝章、上官云相、梁鸿恩、崔锦桂、段承泽、郑俊彦等都在龙潭前线指挥。由于这次南犯为孤注一掷之举,孙决心破釜沉舟,背水为战,故下令将所有运兵南渡的船只一律调回,开往北岸,统由长江北岸的大刀队看管,以示有进无退。可是当南京各军一发动反攻,孙军就支持不住,放弃龙潭,退守山隘,陷于三面被围的困境。
对南京方面来说,这一仗也为存亡所系,对李宗仁来说尤其如此,倘若兵败,不要说日后逐鹿中原,就连广西老家也回不了,所以他横下一条心,要与孙军作殊死战。龙潭战役开战后,双方均以主力拼杀,打得崖裂土翻,日月变色。龙潭周围几十里地,炮火连天,烟尘蔽日。当时,海军总司令杨树庄态度不明,白崇禧主动打电话给杨,装作若无其事,不但对杨丝毫不加责备,反而对他诸多激励。白告诉杨树庄,北军已占龙潭,命他开出舰队,守住渡江口,切断孙军后援和退路。白并强调:“孙之势力终必被歼,海军如不努力,将来一定要追究责任。”在白的压力下,杨树庄派出通济舰到镇江,但作战仍不甚积极。于是白派潘宜之在镇江带了一班宪兵登舰,押了舰长李世甲向龙潭开去,从背后炮击孙军。其他军舰见通济舰出击,也纷纷行动起来,孙部的后援被截断。结果杨树庄和李、白共同作战到底。
这样,白崇禧由东而来的增援与李宗仁、何应钦指挥所部对龙潭的反攻,形成夹击之势,然而也遭到了孙传芳军强大而顽强的抗击。孙传芳军还反攻为守,进行全线逆袭。“龙潭周围数十里地,炮火蔽天,血肉模糊。战斗的惨烈,实为笔墨所难形容。”直至8月30日午后,由于孙传芳军的渡江航线被南京政府军的海军截断,后援不继,渐渐不支,乃退山隘。北伐军从三面对孙军形成合围之势,但孙传芳军,居高临下,继续顽抗,以百余挺机枪扼守山险。北伐军各部往上仰攻,死伤众多,但士气旺盛,至下午3时占领各重要山隘。孙传芳军仓皇向江岸撤退。下午5时,龙潭终于被夺回。
31日清晨,退到江边的孙军组织最后一次反扑,来势极为猛烈。此时白崇禧、何应钦已抵达龙潭督战,孙军死伤惨重,企图退却。来自东、西两面的北伐军合力进逼,将其压到长江南岸边,不及渡江的4万多孙军被包围缴械。孙传芳仓皇登上小汽艇逃命,收容残部五六千人,逃回徐州,所部“十万大军”大部被歼。降兵押解南京时,分四路纵队前进,排头已抵南京城郊,排尾尚在龙潭。孙传芳此次倾巢南犯,血战七昼夜,全军覆没。经此打击,从此绝无再起可能。
龙潭战役之时,正值蒋介石下野之后,南京政局混乱、人心浮动之际,李宗仁、白崇禧以伤亡8000多人的代价,力挽危难,打败孙传芳,大获全胜。对于龙潭战役的胜利,事隔几十年后,白崇禧在回忆录中说:“龙潭之役在北伐大业中是最重要一仗,因为胜利了才能西征消灭唐生智之反动力量,才能迁都南京,稳定国政治局面,促使徘徊观望之友军加入革命行列——如阎锡山之北方军在龙潭战役前便与革命军有联络,但畏于奉军迟迟不敢明白表示态度。龙潭战役之胜利对奉军是一大威胁。阎鉴于革命之趋势,很快便附和了革命军。如果龙潭之役失败,不但江、浙、闽、赣、皖五省重归孙传芳,唐生智之势力一定高涨,其他抱游离态度之友军,更远离革命军。如此,革命军能否再回广东重整旗鼓,便是一大问题。所以说,龙潭之役是北伐大业成败极大之关键。”
对于此役,不少国民党元老印象犹为深刻,于右任老先生曾写一联:东南一战无余敌,党国千年重此辞。谭延闿亦有联相赠与白崇禧:指挥能事回天地,学语小儿知姓名。江岸撤退。
9月2日,南京军事委员会下令肃清江南残敌,同时命令十八军杨杰、四十军贺耀祖、三十三军柏文蔚等分头渡江追击。随即占领浦口、扬州等江北要地。