太平军经过一番调整之后,稳定了自内讧以来的混乱局面。咸丰八年(1858年)六月,太平天国的高级将领召开会议,共商大计。他们经过一系列的精心部署,和前来攻击的湘军进行了激烈的交战。结果在三河镇湘军大败,太平军士气大长。
三河战役胜利之后,陈玉成率领部队一路前行,先是桐城,然后是庐江、界河、潜山、太湖等地,所到之处清兵连连退败。当曾国藩得知太平军下一个进攻的对象是安徽时,马上和胡林翼商定进兵安徽的计划。此时,李鸿章也投奔曾国藩门下,曾国藩很是高兴,因为他知道李鸿章的才华和谋略。在李鸿章的出谋划策之下,咸丰九年(1859年)九月,曾国藩和胡林翼制订了向安徽进军的计划:兵分三路,第一路由都兴阿、多隆阿、鲍超及杨载福围攻安庆;第二路由曾国藩率兵攻太湖、潜山、桐城;第三路由胡林翼率兵取道英山、舒城、六安,之后曾国藩又亲自率领第一路军队进攻安庆。
咸丰九年(1859年)十月二十四日,围攻太湖的大队人马从不同方向出发,当他们会齐之后,便进攻太湖。陈玉成闻讯率万人赶来支援,鲍超率领部队抵挡陈玉成的援军,由于势单力薄,被陈玉成的部队包围住了。但他奋力抵抗,最终等来了援兵,里应外合把陈玉成数万军队击败,并烧了太平军的粮食,致使陈玉成无奈之下撤离太湖,而湘军则趁此机会占领了太湖。
咸丰十年(1860年)七月,曾国藩被提升为两江总督、钦差大臣,督办江南军务。曾国藩盼了多年终于盼来了这份官职,于是感觉身上的担子更重了。咸丰十一年(1861年)三月二十七日,曾国藩自祁门出发,在长江靠岸停泊的大船上设立了指挥部,指挥湘军围攻安庆城。这一次由于陈玉成的指挥失误,在关键时候率兵离开集贤关,让曾国藩和胡林翼有机可乘。曾国藩和胡林翼趁机命人包围了集贤关,并且让曾国荃包围了菱湖,切断了陈玉成部和外界的联系。五月一日,鲍超及曾国荃率领士兵向对方发起了猛烈进攻。经过几天几夜的血战之后,消灭了太平军的精锐部队。此时的陈玉成得知此事之后,非常后悔,他马上率兵回头迎救,但被多隆阿的部队挡住了去路,后来和洪仁、林绍璋、黄文金、杨辅清一起攻打多隆阿,但没有成功,无奈之下他率五万余人西入湖北,再由蕲州折而下行,折腾了七十多天才进入集贤关,而此时湘军已打破了安庆城外的所有堡垒,包围了城池,即安庆危在旦夕。
八月一日,随着曾国荃率领湘军轰倒安庆北门的城墙,安庆被湘军拿下了。此时守在安庆城的太平军因为多日无粮已无还击之力,三四万人被凶狠的湘军全部杀光。自此太平间的主力部队便不存在了。事后曾国荃曾给写信曾国藩表示杀了那么多俘虏,心里深感不安。曾国藩劝其说:“既已带兵,自以杀贼为志,何必以多杀为悔。”
接下来,湘军的目标便是天京城。
在湘军的强烈攻击下,江、浙两地大小城镇被攻破,天京面临绝境。早在同治二年(1863年)五月,湘军就堵死了天京的粮道,天京城内的粮草一日比一日少。这一年冬天,洪秀全就号召在天京城的空地上种粮食。因为粮食成了最大的难题。
同治二年(1863年)十一月十一日,李秀成曾向洪秀全提出“现在天京已被湘军包围,城内粮食已断,如今最好的办法就是让城撤走。若不依臣所奏,灭绝定矣!”城中大部分官员也同意李秀成的观点,但洪秀全却不同意。甚至还生气地说:“朕奉天父天兄之命下凡,是九州万国唯一真主,何惧之有?尔畏死,尔就走。朕铁打江山,尔不扶助,有人扶助!”李秀成再奏,洪秀全竟挥手让他离开天京城。事后在众人的告求之下,李秀成才未被驱走。
同治三年(1864年)二月初,天京城内已无粮可吃,洪秀全便带头吃野草。如此一来,没几日他便病倒了。病了之后他拒绝吃药,不久便逝世了。洪秀全逝世后,他的幼子洪天贵福即位,为幼天王。
即使是这样一座孤城,湘军费了好大劲也没能攻下。用重炮轰,挖地道,该想到的办法均试过,可均没有效果。此时清政府拼命催促剿灭太平军,同时不断派援兵来助战。但是曾国荃却不想让其他人分享他攻破天京城的功劳。后来清政府派李鸿章来助战,曾国荃得知后很生气,坚决不允许。而李鸿章也左右为难,一方面是皇帝的命令,一方面又是曾国藩的面子。无奈之际,他便上书朝廷宽限曾国荃几天,但未得到同意。于是李鸿章不得不率兵赶去天京援助。临出发之前他给曾国藩和曾国荃二人分别写了一封信,决定即日起派淮军刘士奇炮队及刘铭传等人围攻天京。
六月十五日,曾国荃收到了李鸿章的书信,马上向身边的大将们读了内容。大家都不想让别人分享这块肥肉,于是决定在李鸿章抵达之前,一定要攻进天京,以避免到嘴的肥肉落入别人之口。
太平军保卫天京的重要阵地地堡城被攻破之后,湘军便想方设法挖掘地道。为了阻止太平军上城墙,湘军把一百多门大炮安在了龙脖子山上,日夜不停地狂轰。这样,太平军就上不了城墙,湘军们就能抓紧时间挖地道。经过几天的努力,地道终于挖好了。挖好之后,便在地道末端的城墙下面装好了炸药。六月十六日,湘军在向地道运送炸药时,被太平军发现,他们派兵企图捣毁地道,但被赶来的湘军打败。中午时分,曾国荃率部队于地道旁,引爆炸药后就冲进城内,但谁都不想打头阵。曾国荃问身边的将领们谁打头阵?但都不出声。最后,由将领朱洪章率队打头阵,然后依次是萧孚泗、刘连捷、李臣典等人,曾国荃让他们各立下军令状,“前进者赏,后退者罚诛!”在他一声命令之下,便点了炸药。但没想到的是,炸药的威力比预先估计的要超出许多倍——随着一声巨响,城墙被炸毁了二十多丈,朱洪章的先锋营也有四百人被炸死。坚固的城墙倒了之后,湘军一拥而攻进了天京。此时的太平军由于饥饿早已筋疲力尽,再无还击之力,致使湘军杀太平军就像杀鸡一样毫不费力。其实,刚开始时太平军还奋力抵抗,但是由于他们早已饥疲无力,终抵不过湘军的精兵强将,所以这场战争只持续了半日就结束了。至此,长达十四年的太平天国革命宣告结束了。