南京城内的天地会部众不断在城内搞破坏,粘贴天德王光复金陵的布告,搞得城内人心惶惶,士兵杯弓蛇影,“群相惊疑,知有jian细”,南京城的守城意志不断瓦解。加之太平军在城外示以仁义,许多南京百姓纷纷盼望太平军入城。《金陵被难记》中记载:“先遣jian细,在城市布散谣言,张贴伪示皆曰不杀百姓,愚者每帖然信之。信则惑,惑则受害矣……其党每购什物,倍加与之。”在这样的群众基础下,南京城破已是必然。
杨秀清下令太平军在静海寺、天**等地开挖地道,准备实施穴地战术。张炳垣与知县刘同缨献策开挖内壕,在入城口修筑地堡,在城中交通干道两旁房屋建设炮火,以防太平军爆破入城,被陆建瀛拒绝。后来张炳垣又提议以炮轰击静海寺,去除太平军挖地道的据点,副将汤贻汾亲自点火炮击静海寺,“一发中,次梁便塌卸”,但炮火并未能破坏太平军挖掘的地道。
3月16ri,静海寺附近的地道三处同时爆破,狮子山上方向的城墙被炸开两丈的缺口,“然不致洞通也”,太平军再度爆破,炮兵又猛烈轰击缺口,终于“地道与炮并发,上下一震,狮子山正面城垣,颓卸砖石数层”。太平军突击队从缺口冲入,仪凤门告破。太平军突击队在街头搜到总督陆建瀛,将其杀死,一时间汉兵全部溃散。
南京城内驻扎不少旗人部队,战斗力甚强,战斗意志也坚决,在团练的支持下,全歼太平军突入城中的部队。眼看仪凤门爆破功败垂成,先前入城避难的和尚们却脱下僧袍,拿起军刀,砍杀聚宝门守军,此时聚宝门守军已大部调往仪凤门增援,所剩士兵很快被和尚杀散,李开芳率军突入聚宝门,稍后太平军大队入城,完全控制了局面。
南京城虽然被攻克,但城中之城,满城尚在旗人士兵的控制中。南京满城是原明朝皇宫旧城,城垣极其坚固,防御工事完备。因为太平天国以民族**者自居,推行对旗人的无区别杀戮的政策,城中旗人只得与太平军死战到底,因此满城的战斗,惨烈的状况前所未见。杨秀清亲自指挥太平军主力围攻正阳门、朝阳门,数万老兵在炮火的掩护下chao水般冲击满城,城中旗人疯狂反扑,妇女皆上城墙与太平军搏杀,老人孩子也在城墙上呐喊助威。杨秀清连续发动三次强攻,都被打败,阵亡数千人,积尸与城平。
旗人士兵虽然抵抗十分凶猛,但抵不住太平军庞大的人力优势。杨秀清将部队轮批上阵,以车轮战术消耗清军,战斗持续数ri,旗兵竟有人“力尽气竭而死”,杨秀清又下令投降的旗人可以免死,旗人的士气顿减。太平军乘机猛攻,一举突破城墙,清军主帅祥厚自刎,其余清将均为太平军所杀。天王洪秀全下令,全城捕杀旗人,“有擒得旗人者,赏银五两”。于是城中的汉人都起来搜捕追杀旗人,旗人两万余人几乎全部被杀,太平天国在付出数万人的惨痛代价后,全面占领南京。