1861年9月,太平天国的军事重镇安庆失守,曾国藩指挥湘军长驱直人,一路沿长江而下,直逼太平天国的首都天京。天京保卫战就此拉开了帷幕。
曾国藩将他的大本营设在了安庆,然后立刻开始筹划对天京的进攻。这一次,他吸取了清军前几次失败的教训,提出了“欲拔本根,先剪枝叶”的战略方针。具体部署是:曾国荃率领部队从安庆沿长江北岸直趋天京城下;彭玉麟率湘军水师沿途保护陆军,并且负责为陆军运送补给品;李鸿章部率领淮军进攻上海周围的太平军,然后由东向西进攻天京;其他几路部队分别进攻安徽和浙江的太平军,牵制他们的行动。
1862年3月24日,曾国荃率领湘军主力从安庆出发,沿途攻城拔寨,于5月30日在天京城外雨花台扎下大营。与此同时,彭玉麟率领的湘军水师部队也已经停泊在天京护城河口。天京处于湘军的直接威胁之下。
湘军如此迅速地兵临城下,大大出乎洪秀全的意料。安庆的陷落使他不仅丧失了长江上游最重要的军事屏障,而且还葬送了由陈玉成率领的太平军最精锐的战略兵团,甚至陈玉成本人也在安庆陷落后不久被清军俘虏并杀害。现在,洪秀全只能指望另一位战将李秀成了。他急忙下令远在上海前线的李秀成率军回援天京。李秀成于6月22日在苏州召集部将商讨救援天京的计划。针对此时对方士气旺盛、攻势强劲的态势,李秀成决定先让湘军对天京城展开强攻,以此消耗湘军的实力,趁他们疲惫不堪的时候再发动进攻,这样就可以一举将敌人打败。他首先派出两万名士兵携带大量的粮草返回天京,加强天京的防御,自己则率领20万大军坐镇苏州,引而不发,等待时机。但是老奸巨猾的曾国藩没有中计。长期以来,曾国藩一直是太平军的主要对手,对于太平军顽强的战斗力,曾国藩早有领教。他认识到围攻天京城的战斗将是长期的、艰苦的,因此必须采取稳扎稳打的办法。整个7月份,湘军不断在自己的营垒周围修建防御工事,同时大量囤积军火粮草,准备长期围困天京城。天京城里的洪秀全当然不会对此视而不见,他不断派出部队袭击湘军的营垒,但是屡遭挫败。天京城里的太平军最终放弃了进攻,闭城死守,把解围的重担交给了远在苏州的李秀成。洪秀全不断催促李秀成前来解围,但是李秀成始终不为所动。
然而,天有不测风云。9月初,湘军部队里突然发生大面积疫病,很多士兵死亡,更多的人则身染重病,其中也有重要的军事将领。生病的人们只能躺在床上,无力下床走动,更不要说打仗了。李秀成得到消息后,认为时机已经成熟。9月14日,他率领20万大军自苏州启程,回援天京。在天京城外,他的部队在东起方山、西至板桥的广阔地域扎下数百座军营,对湘军的雨花台大营形成了反包围。太平军不仅在兵力上占有绝对优势,而且有着较为完善的医疗条件,因此,在湘军中盛行的疫病没有在太平军中流行开来。此时的曾国藩急得如热锅上的蚂蚁,四处调兵遣将,增援前线。但是远水难解近渴,天京城下的湘军只能指望自己了,好在他们还有不久前修筑的防御工事可以依靠。
10月13日,天京外围的攻防战正式开始。太平军以自己绝对的优势兵力对湘军展开全面进攻,试图从正面攻克湘军阵地。湘军则以逸待劳,凭借深沟高墙顽强抵抗。他们躲在阵地后面,等太平军靠近时就用枪炮射击。太平军士兵一听到炮声就伏倒在地,等炮声停后又向前冲锋。地面上战火纷飞,地底下也不太平。当太平军发现地面进攻无法得手后就展开地道作业,试图以此攻人敌人的营垒。湘军也针锋相对,从营垒内反向挖掘地道,破坏太平军的地道攻势。就这样,无论地面地下,双方你来我往,互不相让。
太平军人数众多,但是其中新兵的比例很大。这些新兵没有作战经验,战斗意志也不够坚定,所以虽然太平军连日展开猛攻,但是始终没有突破性进展。李秀成随即改变战术,集中兵力实施重点进攻。11月3日,太平军终于轰塌了湘军大营两处营墙,士兵从缺口涌人,湘军投入了最后的预备队拼死堵截,双方展开了残酷的肉搏战。经过反复争夺,太平军败下阵来。本来李秀成希望以优势兵力速战速决,没想到部队久攻不下,士气受挫,加上冬季来临,粮食补给出现困难,他不得不于26日下令撤围。
洪秀全见解围未果,又决定采取“围魏救赵”的计策。他命令李秀成率军北渡长江,绕过安庆,进军湖北,希望能调动湘军回援后方。上一次他也是用这个方法打破了清军对天京的围困。1863年2月27日,李秀成率数万大军渡江北上,先后攻取浦口、江浦(现都属南京),恢复了隔江通道,于3月底抵达巢县,准备从无为县西进。
这一次,曾国藩没有上当。他命令后方各地加强防守,却没有从天京城下调走一兵一卒。这次行动本来就是一次战略佯动,所以李秀成也就没有做好攻城掠地的准备。当发现湘军没有回援后方的企图后,李秀成不得不于5月底率部返回天京,沿途又不断遭到湘军的拦截,最后只有1万5千余名官兵回到天京。太平军的这次行动不仅没有达成战略企图,反而损兵折将,耽误了半年时间。
至此,湘军已经完全控制了长江北岸。太平军实力则遭到进一步削弱,胜利的希望越来越渺茫。在随后的半年时间里,湘军一步步收缩包围圈。到1863年底,天京城外围的上方门、高桥门、双桥门、七桥瓮、江东桥等据点相继被湘军攻陷,湘军大营也从雨花台移驻孝陵卫。天京城里的人们只能通过尚在手中的太平门、神策门与外界保持联系。与此同时,在苏浙战场上,太平军也连遭挫败。李秀成意识到形势严峻。他向洪秀全建议放弃天京,另图发展。在当时这是惟一的出路,天京尚未完全中断与外界的联系,突围仍是有可能的;散布于各省的太平军将士仍有数十万人,以洪秀全的威望,把他们集中起来,统一指挥,重振军威,仍有可能开创一个新的局面。但是这一合理建议遭洪秀全断然拒绝。多年的安逸生活已经消磨了他身上的锐气,现在他再也不愿意过起义之初那种天天行军、日日打仗的艰苦生活,而宁愿在天京城里坚持到底。最后的机会就这么丧失了。无可奈何的李秀成只好抱着与天京共存亡的决心,部署军队死守城池,直至最后一刻。
1864年2月28日,湘军攻占了位于紫金山西峰的天堡城,3月2日又攻到了太平门和神策门外,完成了对天京的合围。随后,湘军开始在城外多处地点开挖地道,太平军也在城内向城外与湘军对挖地道。两军再次展开地道攻防战。1864年6月1日,天王洪秀全病逝,终年51岁。幼天王即位,李秀成负责一切军政事务。7月3日,湘军攻占了位于太平门东侧紫金山西麓的地堡城,太平军失去了最后一道护城屏障。湘军随即构筑了数十座炮台,昼夜对城内实施轰击,掩护部队的坑道作业。很快,湘军就把地道挖到了太平门城墙下。7月19日,随着一声轰然巨响,城墙被炸塌,湘军冲进城内,与守军展开巷战。当晚,李秀成带着幼天王伪装成湘军,从太平门缺口突围,不久在混乱中被冲散,随后相继被俘、被杀。
天京的陷落,标志着太平天国革命运动的失败,中国历史上最后的、也是规模最大的农民起义失败了。