南京的地势较为险要,历来有虎踞龙盘之称,城内城外山冈起伏,炮台林立,易守难攻,五大要塞更为凶险。此刻,张勋已在这五大要塞:乌龙山、幕府山、狮子山、雨花台、天堡城布置重兵守备,以抵御革命军。
吸取徐绍桢上次失败的教训,这次萧震雷作了精密部署。在进攻前的军事会议上,萧震雷指着军事地图一一向各军将帅介绍说:“南京的险要,就在于这五大要塞。我军如果不先占领这五大要塞,就无法攻城。”
他看了看各路指挥官,继续道:“五大要塞,周围六十里,而张勋已经把这五处布成一个相连的战区。其中乌龙山、幕府山是战区的门户。据我所知乌龙山炮台有近20门重炮,杀伤力极强,因此乌龙山炮台只能智取不能强攻,否则,我军将蒙受重大损失。徐军长,据说你与南京总炮台的指挥官成鲲关系不错?不知道你不能不说动他临阵倒戈?”
徐绍祯闻言立即站起来道:“我试试,能不能成我不敢保证!”
随后,徐绍桢与清军南京总炮台的指挥官成鲲秘密联系,在发起进攻前,成鲲带着一部分人树起了起义大旗,并暗中卸下了炮栓,使革命军未伤一兵一卒就占领了乌龙山。事后,萧震雷任命成鲲为江浙联军炮兵炮兵司令。
为了扭转败局,张勋连夜调拨援军,让他们在天亮前夺回乌龙山。无奈大势已去,革命军又相继攻占了幕府山、狮子山。清军在昼夜之间连失乌龙山、幕府山、狮子山三处要塞,张勋急忙调动重炮,加强天堡城、雨花台的太平门一线火力,并派遣江防营提督王有宏带领重兵守备。
11月26日,萧震雷一声令下,革命军发起全线进攻。萧震雷率领参谋团亲赴太平门前线指挥。在太平门驻守的是江防营提督王有宏,此人号称“大胆将军”,是张勋的一员武将,他将联军进攻,便亲自上阵,勇猛作战。萧震雷让部下准备重火力,等王有宏一出马,联军集中火力,他全身中弹百余发,当场毙命。太平门主将一死,清军立刻军无斗志,大败。
痛失爱将,张勋当晚调集城中所有清军,一鼓作气向城外反扑。面对张勋的反扑,萧震雷下令联军集中火力就地防御,清军死伤惨重,原本清军作为守城方,根本不需要如此,可张勋是个性格暴烈之人,冲动之下损失了大量兵力。
战斗两天,在萧震雷的调度和指挥下各军都先后经历过了战斗,得到了战火的洗礼,有过严格训练的部队在这两天的战斗中损失不大,沪军三个师因为都是临时组织起来的巡防营或青帮地痞,战斗力与正规军相去甚远,因此损失较大,李英石的沪军第四师要好一些,毕竟经过蔡威的训练,而且训练时间较长,士兵战斗素养都很高,损失很小。
两日后,联军迫近天堡城,天堡城位于南京紫金山的西高峰,原是太平天国定都南京后,为保卫天京建筑的堡垒,城墙用巨大的石头垒砌,有一夫当关,万夫莫开之势,是军事上控制南京的关口,居五要塞之首。
在前两日的战斗中,各路军队都进展很快,唯有沪军第三师、第五师不仅损失颇大,而且进展缓慢,还有苏军第三军林述庆、柏文蔚等部进展不大,感觉颇有些丢脸,因此这次李燮和、蒋志清、林述庆、柏文蔚等人主动向萧震雷请缨进攻天堡城。萧震雷考虑后答应了他们的请求。
天堡城攻击战打响,革命军各路大军,向紫金山冲击,冲锋号、枪炮声、厮杀声震天动地。天堡城清军,凭险据守阵地,机枪不断扫射,大炮不停轰击。林述庆、柏文蔚等人率领的革命军几次冲锋,都未能突破,双方死伤遍野。
11月28日,武昌方面发来电报,黄兴在汉阳指挥的防御作战失败,汉阳全面失守,北洋军占领汉阳,武昌岌岌可危,各方都知道现在唯有攻克南京方能挽救革命来之不易的大好局面,全国各地都将目光放在了南京之战上。
12月1日,萧震雷下令调来海军战舰,用舰炮轰击天堡城,清军死伤惨重,不得不退却,革命军随即占领天堡城,
12月2日,联军终于攻入南京,南京至此光复。