賴漢英的攻城策略使南昌攻防戰的核心轉移為地道戰。太平軍不斷在城北得勝門外暗挖地道,江忠源在城內加築月城,從章江門到得勝門樓,兩軍不斷接仗。江忠源又令部隊在得勝門老月城內開掘深濠,安設甕聽,偵察敵軍動向,防止敵軍轟塌城牆。
太平軍把文孝廟作為挖掘口以後,此處成為江忠源的心腹大患。一天夜間,他派兵下城去燒文孝廟敵營。楚勇放火之後,抓回幾個舌頭,江忠源連夜審訊。俘虜供稱,石達開已從金陵派出幾千援兵,即將開到南昌。
為了防止守軍襲擾,賴漢英在永和門與得勝門外的高坡上連紮三營,分兵攻擊各門。江忠源令守軍擊退攻城敵軍,不時選派敢死隊下城追擊。從6月27日到7月6日,城防固若金湯。
羅玉斌的九江援兵於7月4日全部趕到南昌。江忠源手中兵力增強,決定於7月7日發起一次反攻。他派楚勇、川勇、九江兵和南昌鄉勇從城西順化門出兵,分三路進擊。另派守備封九貴帶領一百多人的放火隊從章江門下城,去燒敵壘和敵船。江忠源帶領林福祥,率練勇在城外高處接應。張芾與陳孚恩在城上督陣,陸元烺、惲光宸、吳其泰、鄧仁坤、王訓和沈濤等官員負責分守各門。
三路官軍出城後,迅速逼近敵營,遭到大炮轟擊。徐思莊的南昌鄉勇遭到幾千名太平軍阻擊,立刻處於劣勢。張芾令耆齡對準敵陣發炮,將敵軍稍稍壓退。炮火一停,太平軍又反撲過來。九江兵、楚勇、川勇和南昌府勇三麵接應,合力抵禦,鏖戰二時之久,才將敵軍擊退。封九貴的放火隊從章江門下城,攜帶火罐火箭,正要放火燒房燒船,太平軍出動二三百人頑強阻擊,放火隊拚死衝鋒,斃敵幾十名。遊擊常海在城上指揮浙江兵用槍炮射擊,將太平軍壓製下去。這一天的戰鬥,攻擊部隊和放火部隊因兵力單薄,都未得手。
江忠源下令收兵回城。他剛回到城內,張芾便來找他,一臉愁容地說道:“據湖口縣稟稱,又有賊船百餘隻開來,恐怕賴逆凶焰更加囂張。”
江忠源說:“招募鄉勇有無結果?”
張芾道:“增募了一千多人,隻能協助守衛城牆,用於攻擊,太無把握。”
江忠源歎道:“是啊,即便我們能夠保住省城,可是逆賊又會竄往別處。若能再得精兵五千,便可將城下此股賊匪撲滅,不致再有蔓延。”
“唉,可惜向欽差那邊的援兵還不見到,若是和春與秦定三能來,加上湖南和湖北的援兵,相信江大人一定能將賴逆殲滅。”
江忠源的反擊未能奏效,反而促使賴漢英決定加快對南昌的攻擊。7月9日早晨,他下令引爆地雷,炸塌了得勝門西月城外六丈多長的城牆,缺口兩旁還各有三四丈的裂縫,聲震一城,黑煙迷目。江忠濟率領一百多人用布袋盛土壘築,修補缺口。不料城牆大垮,築牆者多被埋在牆下,江忠濟也在其中。未被埋掉的隨從將他拔掖而出。
江忠濟站立起來,隻見幾千名太平軍蜂擁而上,江忠源和江忠濟督率楚勇當先阻擊。張芾聞報趕到缺口處,戰情正在緊要之時,太平軍用火箭槍炮向城內射擊,子密如雨,楚勇軍官唐邦興和陳周呂等站立缺口,指揮眾勇冒死拒敵,血戰一個時辰,將衝上缺口的敵軍全部殺斃,擊斃幾名身著黃衣、手執黃旗的太平軍將領,敵軍方才稍稍退卻。楚勇乘勢壓下,太平軍抵敵不住,敗入屋內。楚勇林立城下,形成一道防禦線。
得勝門城牆轟塌時,太平軍分兵攻撲各門,陸元烺、徐思莊、陳景謨、汪茹鑒等人在各門分段守禦,將攻城敵軍全部擊退。
張芾和陳孚恩趕緊號召官兵和民工連夜搶修。鄧仁坤和林福祥最先趕到缺口,冒著箭矢和石頭督率搶築,尤為出力。他們很快築起高約七八尺的城牆,堵塞了豁口,江忠源才令楚勇撤回城內。第二天將缺口及開裂處一律築補,得以化險為平。統計戰果,當天各處約斃敵五六百人。
這一仗能夠保住南昌城,靠的是楚勇搶護,江忠源調度有方,又能先事預防,江忠濟不避鋒鏑,督率楚勇當先阻擊。對於楚勇和協同作戰的部隊,張芾分別從重給賞。江忠源拒絕張芾為他向朝廷請獎,張芾請求賞給江忠濟五品頂戴花翎。恰在此日,京城快遞給江忠源送來鹹豐頒賜的白玉翎管一枝,白玉四喜搬指一個。江忠源對鹹豐滿懷感激,發誓要死守南昌。
賴漢英功虧一簣,大為遺憾,下令在這條地道的左右繼續開挖幾條地道,暫不動用主力攻城。太平軍隻是躲在屋內鑿孔,用槍炮射擊,派小股部隊四出偵察。江忠源派出探子,測出敵營位置,指揮大炮轟擊,擊毀幾處敵營。又令各部在城內開挖暗濠,杜絕太平軍的地道。總兵馬濟美率領援兵趕到,江忠源與張芾商量,令他率領本部人馬和羅玉斌的九江兵,加上新募的川勇,紮營在城東北的永和門外。
這時候,都司戴文蘭率領二千人從湖北趕來。此人是老戰友了,江忠源一見他,十分高興,握著他的手說:“貴軍來得太及時了。我就知道,湖北不會坐視不管。”
戴文蘭說:“左季高聽說南昌吃緊,呼籲兩省協作,對張製台說:‘江西有難,湖北不能坐視不管。如果各省隻顧自己的轄地,就會被洪秀全各個擊破!’製軍頗以為然,連忙派我等前來。”
江忠源道:“貴軍可否到城外紮營禦敵?”
戴文蘭說:“遵令!”
江忠源又對張芾說:“援兵陸續到來,我想再發起一次反攻,中丞以為如何?”
張芾說:“向榮的援兵尚未開到,是否等到援兵稍多時再行反攻為好?”
江忠源道:“我也擔心反攻開始之後賴賊會從水上撤退,官軍無從追擊。若有水師上下追堵,形成夾攻,才能將敵軍全殲。”
“向榮倒是有水師,隻恐怕他不肯調來南昌。”張芾說道。
“向榮靠不住!此股逆賊離開金陵後,他曾派福興率水師從附近追擊。福興明知其子向繼雄炮船失事,卻不援救,行至蕪湖便下令返航。那時逆賊多未上岸,自然是乘風直上。如今想來,逆賊之所以沒有沿江搶掠,一是為了保密,二是考慮到沿江城鎮殘破之餘已無可掠。福興應當已將此事稟報向榮,但向榮卻對朝廷謊稱是難民船隻,致使逆賊蔓延到江西內地,真是可恨已極!”
7月16日,戴文蘭等下城紮營,太平軍突出幾百人冒死來撲,戴文蘭等人率部斃敵數十名。第二天,戴文蘭等正在支搭帳房,太平軍又出動一二千人,分作五路直撲官軍營盤。戴文蘭指揮開化勇迎戰,張金甲率辰州兵設伏於短牆下,開化勇佯退誘敵,辰州兵突出衝截,開化勇又從旁圍攻,共傷斃太平軍一百多名。
7月19日,張芾派馬濟美統兵由東向北,戴文蘭由西向北,在得勝門外北麵空心炮台後駐紮。7月20日淩晨5點,兩部同時出兵,馬濟美指揮參將羅玉斌等部從東路進攻城北敵營,幾千名太平軍蜂擁迎截,廣勇首先衝鋒,川勇與鎮標兵繼之,三麵圍攻,鏖戰兩小時,大有斬獲。派在空心炮台策應的廣勇練勇人數較少,剛剛列隊,幾百名太平軍直撲而來。廣勇頭目程智泉拚死抵禦,練勇在一旁接應,空心炮台內也同時開炮護衛,才將太平軍擊退。
城外開戰時,張芾、陳孚恩、江忠源等人一同在城上指揮,並令知府耆齡、遊擊祥麟等用大炮射擊,擊斃一些太平軍。戴文蘭等人從西路進攻城西敵營,太平軍突出三百餘人,被官軍擊退,退入營內,不再出戰。但是太平軍兵力約有一萬多人,其中有不少骨幹力量,進退有序,即使在傷亡嚴重時,部隊也未潰散,官軍無法將其重創。
南昌保衛戰打到此時,張亮基調派的兵力已全部到位,向榮所派兵力隻有總兵音德布率領的一千二百人到位。此外還有駱秉章派來的六百人、贛州總兵阿隆阿帶來的三百多人陸續趕到。江忠源打算讓援兵在永和門和章江門外紮營,分為左右二翼。東南四門距離太平軍稍遠,防守較易,江忠源未派部隊在那裏駐紮。