安庆失守后,陈玉成退守庐州,这时候他已经不能回天京了,因为天王洪秀全会追究他救援安庆失败的责任。陈玉成在庐州彷徨无计,但是湘军不给他犹豫的机会,多隆阿率大军猛攻庐州。面对此情此景,陈玉成想出一个大胆的计划,虽然这个计划看似荒诞,但是也是没办法的办法。陈玉成把手下的太平军分成两路,一路让扶王陈得才和遵王赖文光率领,远征河南、陕西,而自己率领另一路北上,直取北京。
陈玉成开始按照自己的计划施行,先让赖文光等人出发,自己接着率领军队突围,准备北上。已经投降清军的苗沛霖派人过来劝说陈玉成前往寿州(今安徽寿县),自己率军配合,攻取开封,然后再攻北京。陈玉成听从苗沛霖的谎言,前往寿县,结果中计被擒,在河南延津被杀害,死时年仅二十六岁。
同治元年三月,曾国荃开始进攻天京,他自己率军从长江北岸进攻,让自己的弟弟曾国葆从长江南岸进攻。在彭玉麟、杨载福水师的配合下,曾国荃一路连下长江沿途城镇,五月份便到了天京城外的雨花台。曾国荃的大军让天京城内的太平军很不安,多次派兵出来攻打雨花台,都被曾国荃打了回去。曾国藩非常担心自己这个弟弟的安危,怕他像李续宾一样因为孤军深入而导致惨败,写信提醒他。曾国荃回信说不攻敌人的老巢去攻其他地方有什么意思,虽然攻天京很危险,不过若能成功却是首功一件。
这年秋天,湘军军中瘟疫流行,一半人都病倒了,其中包括曾国藩最小的弟弟曾国葆。李秀成趁机率领十万太平军救援天京,号称六十万。李秀成到达天京后,指挥作战,东起方山,西至板桥镇,密密麻麻的太平军攻湘军雨花台营垒。尤其是湘军东西两边的营垒,这是最为薄弱的地方,也是李秀成下令猛攻的地方。湘军分路抵御,曾国葆当时已经染病,刚好太平军来攻,奋然起身率领湘军作战。太平军首先主攻湘军西边的营垒,连续攻了几天也没攻下来,开始转攻东边的营垒。太平军用尽各种办法攻湘军营垒,都无济于事。李秀成又下令太平军士兵携带木板冲锋,将木板放到战壕上,然后踏着木板越过战壕冲击湘军阵地。湘军用长矛乱刺,太平军死伤无数,后边的太平军接着前冲,拖着死去的太平军继续进攻。战斗中,曾国荃被子弹打中了脸,鲜血直流。曾国荃裹住伤口继续守御。
几天后,侍王李世贤也从浙江率领十万红巾军过来,和李秀成合功雨花台。李世贤领人攻曾国荃“吉”字营的后营,因为那边有湘军的炮台。曾国荃急忙率领人救援,用乱枪射退太平军,然后冲出去贴身肉搏,终于让李世贤的太平军退了下去。太平军又用炸药炸湘军营垒,从塌口涌入,湘军冲出决战,将塌口内的太平军全部杀死,重新守御。有时候看到外边有站在高处举旗督战的太平军,湘军也会突然冲出去将其杀死。在曾国荃的率领下,湘军苦战四十多天,竟然奇迹般地击退了太平军的进攻。
经过这一战,太平军在天京城外死了好几万人。湘军的死伤也非常大,一部分是死于瘟疫,另一部分是死于战斗,连曾国藩最小的弟弟曾国葆也因为耽误治疗而病死。曾国藩对这个情况的感触是很大的,看到湘军的尸体堆积如山,难免有自责之心。曾国藩上奏朝廷,主动承担责任,说是以为自己无德才会出现这种情况。同治帝下诏抚慰,安慰曾国藩,说这都是天灾,你有责任,朝廷也有责任,君臣要同心同德,共同渡过难关。
有人劝曾国荃趁着这次大胜退到芜湖,毕竟死了这么多人,总该休养一下,曾国荃断然拒绝,不破天京,绝不返回。同治二年(1863),曾国荃在彭玉麟、杨载福水师的帮助下,把天京周边的九洑洲、江东桥、方山等地都攻下来了,天京更加孤立。李秀成曾经劝天王洪秀全丢弃天京,逃往其他地方继续抗争,洪秀全不同意,李秀成只好留在天京城里一同防守。
左宗棠和李鸿章平定江浙之后,开始向天京靠拢。同治二年十月,李鸿章率领淮军攻苏州,苏州守将是太平军的慕王谭绍光,拥有十万重兵。谭绍光的手下有八个人,以郜永宽为首,都拥有不少人马,这八个人结成生死同盟,见太平军大势已去,就刺杀掉谭绍光,投降李鸿章。淮军进城后,李鸿章的大将程学启建议李鸿章杀掉这八个人,不然后必为患。
程学启本是太平军出身,投靠清军后,每战都是冲锋在前,十分卖命,现在既然已经接受投降,又要杀了他们,实在是狠毒。李鸿章师从曾国藩,也是十分热衷杀人,第二天假意邀请八个人赴宴,在宴席上将八个人都杀掉。事后淮军又将投降的几千太平军全部屠杀掉。
李鸿章接着和自己的弟弟李鹤章先后攻下了无锡、嘉兴、常州等地,程学启在攻嘉兴的战斗中又是冲锋在前,最先登城,不过不幸的是这次他中了枪弹,死在嘉兴。浙江的左宗棠也攻克了浙江省府杭州,镇守杭州的康王汪海洋率领残部逃往福建。
天京被围困两年多后,粮草匮乏,守城的太平军不得不自己在城里种小麦。曾国荃多次挖掘地道,想用地雷炸开城墙,结果由于太平军的顽强坚守,都不能成功,湘军死伤无数。朝廷见曾国荃久攻天京不下,而李鸿章和左宗棠都已经平定了江浙两地,于是下诏让李鸿章率领淮军赶往天京帮助攻城。
李鸿章是明白人,深感曾国藩提携之恩,怎么会去破坏他弟弟曾国荃的好事,故意迁延时日,迟迟不去帮忙。曾国荃也以别人助攻为耻,加大攻城力度,手下大将李臣典终于派人挖好了地道,曾国荃招募死士进攻,李臣典、朱洪章、伍维寿、武明良、谭国泰、刘连捷、沈鸿宾、张诗日、罗雨春等将领率先进攻,湘军引燃炸药,将天京城炸开一个二十多丈的口子,湘军蚁附争登,涌入天京城。
湘军进入天京后,分路进攻天王府、内城等地,太平军的巨王、幼西王、幼南王、定王、崇王等人全部战死。忠王李秀成保护着洪秀全的儿子幼天王洪天贵福从城南冲出去。为了让洪天贵福能冲出去,李秀成把自己的好马让给了他,而自己却因为没有好马在突围的时候被擒。干王洪仁轩护送洪天福贵逃往江西,却在半路被俘。洪天福贵由堵王黄文金护送到江西不久,就被清军捕获。洪秀全已经在不久前因病去世,湘军将他的尸体挖出来,重新诛戮。