1856年,清军趁太平军西征、天京城内空虚,加派和春带领清援兵,围困镇江,给天京造成极大的压力。此时,石达开西征军已到湖北,要回军解救镇江,已是远水救不了近火。朝中文武官员举荐李秀成前往解救镇江。李秀成接到指示,当即从安徽省迅速赶到六安,调集精兵三千人,迅速向镇江挺进,到镇江城外,从清军背后杀出一条血路,攻到城下,城内太平军急忙打开城门,迎接李秀成进城。第二天,李秀成和镇江守军一同出城,摆开阵势和清军作战,首战告捷,清军败回。李秀成乘机率众追击,攻破清营十六座。但是,清兵实在太多了,李秀成见不能硬取胜,就召集陈玉成和镇江守将吴如孝,召开军事会议。大家都一致认为,如果与清兵硬拼,则对太平军很不利,只能智取。决定派兵从清军背后出其不意地进行攻击,然后城内出兵从正面打击敌人,形成两面夹击敌人而令其应接不暇而败。1856年3月,派陈玉成带领几个人冲出镇江水面敌军战船的严密防线,到达镇江城内,与吴如孝计议两面夹攻的战略决策,当即分头行动。吴如孝、陈玉成从城内带兵从正面冲击清军营盘。随后,李秀成率精兵三千人抄到清军后路,与陈玉成的兵马汇合,与清将吉帅对话,次日再战。第二天,两军开战,顿时天昏地暗,一片杂乱,战鼓声、呐喊声、刀枪相交声、砍杀声,惊叫声、马蹄声……各种杂音混合在一起。几个时辰过去了,地上横七竖八地躺着清兵和太平军战士的躯体,缺胳膊的、少腿的、没脑袋的、腹部被枪矛戳个窟窿的,个个都血水淋淋。还有那些带着自身或敌人身上的血仍在使劲地挥舞着刀枪奋战的……又战了大半天,清军开始支撑不住,太平军战鼓猛烈加响,太平军士兵如潮水般涌上去,清军顿时大败,扭头急逃。太平军乘敌军溃退,紧追不舍,接连攻破多座清军营。太平军在屠杀了数千清兵后,打住马脚,回师镇江,在城外安营扎寨,休整待命,与清军吉帅大营对峙。
镇江之围得到缓解之后,4月1日,李秀成、秦日纲等率领万余大军,乘江北大营大办酒席,庆贺军务雷以诚的生日,各营将领应约赶赴雷营祝贺,清军防守空虚之际,在无月的黑夜的掩护下,太平军连夜偷偷地渡过长江,到达瓜州,会合陈玉成、吴如孝等太平军,在清军守地土桥与清兵展开激战。当时江北大营各部主将都赴雷营未归,军中无主,清军如无头的苍蝇,慌乱不知所措,很快清军就大败。李秀成、陈玉成等率太平军乘胜追击,一路上如洪水泛滥、势不可挡,连破清军营盘几十座。4月4日,又在三叉河大败清军,前后共击毁清营120多座。顺势直下扬州,扬州城内守兵,因前往支援镇江,城内防守空虚,城内仅有的少数清兵也早已望风而逃。这样,太平军不费一兵一卒攻破扬州,打开城内的粮仓,大批地把粮食运往镇江、瓜州。
然后,李秀成准备回师天京,以增强南京的防御力量。谁知道先头部队在半路上,又杀出一伙人马,原来太平军回京被清军侦探所知,清将张国樑立刻应命带兵在中途六合截阻回天京的太平军。
当时秦日纲、李秀成所带领的太平军主力仍在扬州,当得到太平军回京被阻的报告,当即放弃扬州,率军由金山乘船渡江,回到高资,攻打当地守军,打破清营七座。清军派吉尔杭阿率兵紧急支援。6月1日,援兵在途中被太平军死死地围困在里面。吉帅看前无救兵,后又无退路,几次突围都不能奏效,就绝望地开炮自杀而死。一时清军无主,不打自乱,逃的逃、被杀的杀、俘的俘,伤亡不计其数。太平军当即就破坏了清营七八十座。当张国樑闻知吉帅被太平军所困,急忙赶来高资急救时,已是远水救不了近火,看到的是一片清军溃败的凄凉。张国樑只好引兵退守丹徒。清江北大营就这样被太平军解决了,天京与江北取得联系,局势稍微缓和下来。
李秀成打败吉帅后,又继续率太平军回师天京,路中又在丹徒碰上张国樑的军队,仇人相见,分外眼红,张国樑当即命清兵冲杀,太平军更不示弱,迎上前去,双方激战了半天,彼此都有伤亡,不分胜负。下午,镇江守将吴如孝率兵一千多人闻声赶到,前来助战。顿时,张国樑军大为逊色,在太平军凌厉的攻势下,大败而溃。太平军乘胜追击,顺手攻破九华山,张国樑军接连大败,见大势已去,已无力再阻挠太平军回京,只好带领残兵败将逃出九华山,再作打算。
正当李秀成率兵即将到达天京时,东王杨秀清迫于战争形势的需要,拟定即刻攻破江南大营的计划,命令李秀成先攻破江南大营的清军,才可以进入城内。李秀成对东王的政策的突变感到不能接受,甚至是不可思议,至少在情理上讲不通,心想:你东王也不想想我带兵千里迢迢来到天京,你却不让咱进来,还要让我们去攻打敌营,将士已经太累了,怎也不让休息休息,这算是什么意思?想不通归想不通,在东王的一再命令下,秦日纲、李秀成也只好率兵在城外燕子矶一带扎营。
冤家路窄,又在此碰上清将张国樑之兵在外叫阵,李秀成当即展开阵势。李秀成拍马冲上阵前,向张国樑喝道:“手下败将,还要来战,是出来送死是不是?快快回去,我还可以留给你一条生路。”张国樑一听,怒气冲天,浓眉倒竖,双眼因发怒而成小三角眼,如恶煞神,愤愤地说:“闭上你的臭嘴,两兵交战,胜败乃兵家常事,有种的,拿命来。上!”“上……”顿时,两军士兵喊声四起,“冲啊……”短兵相接,混战在一起,只杀得肝脑涂地,血流成河。激战了几个时辰,张国樑军败退。在败回的路上碰到向荣率清兵来支援,张、向两军会合在一起。当时已是五月中旬,石达开西征军已应东王的命令,从江西调来二万多太平军回师解救天京之围,石达开部已经过了安徽宁国、芜湖,抵达天京以南秣陵关,并派兵攻占溧水,切断各路清军与江南大营本部的联系。这样的形势大大有利于太平军的进攻。李秀成、秦日纲乘机又打败了向荣、张国樑的联军,向、张只好暂时略向后退,扎营固守。
太平军取胜捷报传到天京,东王大喜,下令杀鸡宰猪,论功行赏,犒劳众将士。休整两天之后,东王令陈玉成、李秀成、陈仕章等将领率军乘胜追击清逃兵,沿途又拿下句容,一直攻到丹阳城下。丹阳城里已由张、向的残军败将守候多日,见太平军赶到城下,向荣想给太平军来个出其不意的攻击,下令大开城门,整队出击。这一招果然有效,双方在丹阳门外大战一场,混杀了大半天,各死伤几百人,也不分胜负。李秀成见清兵较为分散,营盘虽多,并不十分密集,就决定集中兵力,各个击破敌营。太平军各路兵马迅速汇合,全力以赴,攻打江南大营。太平军用火枪、火箭、火炮射向清军营盘,刹时,清营内火光冲天,乱成一片,哭爹叫娘,喊声不绝于耳。清兵被炮轰死、烧死、烧伤的不计其数,有的为了活命,只好冲出营,向太平军投降。太平军在攻破多座清营后,又打败了向荣的孝陵卫大营的守军,向荣只好率败兵退回丹阳城内,凭城固守,等待援军。但其他各地也遭受太平军的进攻,都已应接不暇,更无能力出兵解救,要等清廷发兵来救,已太迟了。向荣看看个个垂头丧气的清军和城外气势汹汹和旌旗招摇的太平军,感到大势已去,自己也不愿再看到后面悲惨的结局,交代完后事,就草草地结果了自己的生命。
这样,太平军以摧枯拉朽之势摧毁了江南大营,解除了近三年来对天京的威胁,使天京城得到暂时的安定。同时,太平军在反围战中,军威大振,军事力量大大增强了。张国樑见向荣军败而自缢,准备豁出去,拼了自己这条老命,与太平军决一死战,出兵进攻丹阳城外的太平军,太平军没想到清兵还敢出击,来不及提防,被张国樑军杀死、杀伤六七百人。但张国樑还是不能突围,不过,这场小胜利使他改变了拼命的主意,凭城死守,等待奇迹出现。在张国樑翘首望天的时候,幸运之神向他招手,太平军内部出现矛盾激化,发生了天京事变,使他得以延口残喘。