湘军自九江惨败后,便将部署在九江的防线回撤,退守南昌。咸丰二年正月初二,太平军突然大举进攻樟树镇,被刘于浔麾下的江西团练武装击退。湘军大将率部从新淦(今江西新干县)回援樟树,在瓦山一带遭遇太平军,旋即与其展开激战,将太平军击败。
正月初七,湘军水师将领彭玉麟在樟树赣江中大败太平军水军,斩获无数。
二月初八,曾国藩得知太平天国翼王石达开统军由吉安折回临江,有数千兵力,战船200多艘,屯扎在永泰一带。几天后又侦察到,太平军欲从沙湖渡江而东,到东岸后兵分三路夹攻湘军。永泰、沙湖到樟树都只有40里路程,敌军很容易攻过来,守军却很难退走。不远处的新淦驻扎了大量太平军,可走小路经丰城来偷袭湘军的后路。曾国藩还探知太平军在横梁、荷湖各部署有3、4000人马驻守。
2月13日,太平军哨骑到樟树镇的河堤上刺探清军动向。彭玉麟发觉后, 率水军击走了河边的太平军侦查小队。步卒赶到后,又驱逐了河堤上的太平军哨骑。14日,曾国藩分兵一部驻守大桥,以防备荷湖方向的太平军。还派遣水军战船驻泊在临江的河口,以防止太平军战船下窜威胁湘军老营的安全。
周凤山亲率5营陆师与水师战船齐头并进开到横梁。天刚破晓,湘军已经走过樟树镇好几里,到达一个叫狗颈堤的地方,见太平军约5000人分为四路,一路屯扎在河桥,一路屯扎在河堤的左边,另两路埋伏在河边的沙洲上,严阵以待。周凤山急忙分兵一部迎战左路太平军,自己亲率主力去堵截据守在桥上的那股太平军。彭玉麟不见贼船踪影,便下令水军弃船登岸,配合周凤山的陆师共同进剿,以免步军腹背受敌,一时间枪林弹雨,杀声震天。
都司毕金科、李新华率部攻击沙洲里的两路太平军。太平军为了集中力量,四路合为一路,与清军展开激烈搏杀,多次击退清军进攻,但清军人多势众,又凶悍顽梗,志在必得,最终大破太平军,太平军死伤惨重。
16日,石达开率10万大军攻占了横溪、香溪等地。周凤山打探到太平军欲发动全面进攻的消息, 便想率领得胜之师乘势迎战敌军。17日辰时,彭玉麟率水师分路迎战。越过樟树镇后,忽见3000多太平军正由狗颈堤进入香溪。湘军西路各营将士奋勇冲杀,太平军正埋头赶路,猝不及防,一下被击倒百余兵卒,其余的溃散,仓惶间, 器械、军旗被扔的遍地皆是。堤坝上、河边还有两路太平军,彭玉麟一声令下,水师舰船枪炮齐鸣,太平军死伤颇重, 余众退走。
湘军陆师进逼香溪时,忽然与太平军主力遭遇,双方旋即展开血战。都司縢国献、周岐山率部从右边冲杀过来,击溃了一路太平军。湘军正在追剿四处溃逃的太平军士兵,从大山的左边突然冲出大队太平军。守备岳炳荣、千总黄玉芳部被太平军迅速摧垮,縢国献、周岐山等只好率右路军回援,极力堵截太平军。不料太平军大队人马从后面源源不断地蜂拥而至,双方你来我往,鏖战了好几个回合,双方伤亡均极为惨重。
18日,石达开率大军将樟树镇团团包围,周凤山把所部分为几股,分别从几个方向抵御太平军的进攻,但因为太平军占据绝对优势,火力也很凶猛,湘军很快被分割成几个部分,彼此无法策应,首尾不能相顾,各自孤军奋战,短短时间内伤亡便多达千人以上。周凤山见情况紧急,便收拾溃兵开城出逃,沿路边打边撤,侥幸逃回到南昌城里。
周凤山惨败、弃守樟树镇,南昌城顿失屏障,数万太平军则长驱直入,直扑南昌而来,并将南昌围得水泄不通。
曾国藩得知樟树失守的消息后,也从南康奔赴到南昌,进城后和彼时的江西巡抚文俊商讨如何设法守住岌岌可危的南昌城。
当时南昌城的形势非常危急,城内守军仅有5000余人,而围城的太平军却多达50000之众。因此,南昌城内人心惶惶,官民相率而逃, 守军禁止不住,秩序大乱 ,甚至有人在混乱中被相互践踏而死。曾国藩强自镇定,一面加固城防,指挥守军拼命死守,一面派人冲出重围,快马加鞭,令鲍超的霆军、李元度的平江勇火速驰援南昌。
连日来,太平军攻势凶猛,昼夜不息,不断发炮、射火箭攻击南昌城,还四处挖地洞埋地雷、架云梯,凌厉的进攻锐不可当,一副志在必得的架势。李元度、鲍超的援军被太平军阻抗、堵截在包围圈外,李孟群的水师也遭到太平军外围兵力的阻击, 根本无法进援南昌城。
曾国藩忧心如焚,几次登上城楼,看到城外太平军人山人海,旌旗蔽日,刀枪林立,战马嘶鸣,真是感到胆颤心惊 坐卧不宁。听到昼夜不休枪炮轰鸣声,曾国藩只能硬着头皮督促守军浴血抵抗,期盼着奇迹会发生。太平军依然不顾伤亡,轮番攻城。曾国藩督率守军抵御了几天后,太平军的攻势依然猛烈,他感到绝望,做了最坏的打算,甚至写好了遗书......一日清晨,一夜未眠的他听到了一个既出乎意料又令人振奋的消息 :围城太平军已经在昨夜全部撤走了,数万大军卷旗而退,一夜间竟撤得干干净净,一兵一卒都不剩!
原来,石达开率太平军主力围攻南昌时,天京遭到向荣所率的清军江南大营的攻击,天王洪秀全为了天京的防务稳妥,就严令石达开率大军回援天京,石达开只好遗憾地离开了就要破城的南昌,回救天京,于是,岌岌可危的南昌形势才有所好转。
樟树镇大败, 损兵折将不说,还殃及南昌,与曾国藩关系重大,因为当初是曾国藩命周凤山扼守樟树,以阻抗石达开。但曾国藩却不敢承担统帅责任,将丢失樟树镇的失误与责任全都推给了周凤山。
曾国藩从南昌死里逃生后,因为太平军的军事力量愈发强大,湘军在江西屡屡受挫,几乎没有战功,因此对于清廷的指责和绿营、八旗的耻笑、讥嘲,他无话可说,只得强自隐忍。