揚州,縱貫南北的京杭大運河與萬裏長江在這裏交彙,曆來是水陸交通樞紐,南北漕運的咽喉,原由劉達率軍於三月攻下,後劉達被鍾懷遠調回柳營帶騎兵,又調派林鳳祥鎮守,林鳳祥率軍北伐後,太平天國揚州守將改為曾立昌,這曾立昌作戰英勇、堅忍不拔,也是隨鍾懷遠出桂的老部下。在曾立昌鎮守揚州的數月間,清軍數次來犯,都被他率軍擊退了,直到此次琦善調集四路清兵,60000多人,而揚州城內太平軍僅剩4000人,眾寡懸殊,曾立昌隻得憑城死守,眼睜睜看著清軍合圍。清軍數度攻城,城牆也被轟塌了幾處,曾立昌每次率部死戰,還是把清軍打退了。但清軍一圍上月,城中糧食已盡,戰馬早就被殺掉吃光了,此時的揚州城中連貓、狗、老鼠、鳥雀等被吃得幹幹淨淨,野草、野菜、樹葉也都快被吃完了,很多人連釘鞋底、牛皮箱、牛皮刀鞘都拿來煮著吃了,若援軍還來不了,揚州城破也僅在旦夕之間了。
鍾懷遠見清軍死守防線,又知城中無糧萬分危急,當即下令全軍拔營,整隊出發,進攻揚州南門外的清軍。鍾懷遠排出左中右三路齊發陣型,左路李世賢,右路譚紹光皆以防護為主,護住全軍左右翼,阻擋清軍援兵,中路鍾懷遠親率,以劉達領柳營騎兵打頭,鍾懷山領柳營步卒緊隨其後,全力突破清軍防線。為增強前軍衝擊力,更快地擊潰清軍,鍾懷遠還特意從鍾懷山那調了1000支短矛配給劉達的騎兵。
揚州南門外的馮景尼在營中正坐立不安,昨夜領教過鍾懷遠厲害的他知道太平軍多半會對他發起攻擊的,一個時辰前就派親兵向欽差大臣琦善求援去了,可直到現在親兵都還沒回來,不知道是不是出了什麼狀況,正思量間,一名親兵來報,太平軍大隊正向營地衝來。雖心中有些懼怕,但馮景尼也知道若不出戰隻怕會被太平軍將大營衝垮,隻得領兵6000出營,倚營迎戰。
劉達率騎兵慢跑著衝向清軍隊伍,到了距敵200步時,開始加速,取箭待發,到了100餘步時,劉達大喝一聲:“射”,立時千箭齊發,向那清軍射去,待每人射了兩箭後,距清軍已隻有六十餘步,所有人等又將那1000支短矛死命擲向清軍,然後拔出鋼刀提馬揮刀砍向清兵。那馮景尼也是可憐,劉達部剛開始射出的2000支箭就殺死了近400清兵,那一千支短矛更是插死了500多人,還未接敵就先損兵近千,士氣大挫,待太平軍騎兵揮刀砍來,清軍隊伍立見慌亂,劉達部的1000騎縱橫馳騁,將那清軍陣營衝擊得七零八落,鍾懷遠立時帶著鍾懷山部的2000步卒殺上,清軍頓時抵擋不住,馮景尼焦慮萬分。正在此時,兩側傳來大片喊殺聲,琦善派來的兩路援軍終於趕到了,李世賢,譚紹光領兵死死抵住這萬餘清兵。馮景尼精神一振,勉力率軍死戰,兩軍正纏鬥之際,馮景尼背後突然又殺出一支上千人的太平軍,領頭之將正是那曾立昌,將馮景尼後隊一舉衝散,馮景尼軍立馬被徹底擊潰,兵丁四散逃走,劉達躍馬揮刀,陣斬馮景尼。這支太平軍乃是那城中的曾立昌見援軍到來,而且看旗號還是烈王親至,欣喜萬分,在城頭觀望,烈王即將擊敗馮景尼之際,清軍兩路援軍趕到,形勢將變,曾立昌當即調兵,除開各處必需兵力,勉強抽得1000人,打開南門攻擊馮景尼部後隊接應援軍。
鍾懷遠令曾立昌率兵速速回城,以免清軍乘機攻城,城防有失。又將親衛全部交給鍾懷山指揮,並命鍾懷山抽出1000步卒去馮景尼的營地內搜尋糧草,搬入城內,鍾懷山率餘部戒備,親率劉達部來回接應李世賢,譚紹光,交互掩護,緩緩退入城內。
鍾懷遠既入城中,軍民歡呼,一為援軍終於盼來了,還帶來糧食;二來揚州守軍中自曾立昌而下,鍾懷遠舊部眾多;三因鍾懷遠以烈王之尊親救危城,一路血戰,眾皆感激。鍾懷遠入城後立即清點城中軍民人數及糧草。曾、李、譚、鍾懷山各部兵丁共計6700人,劉達的騎兵還有730人馬,另有受傷士卒2000餘人,城中百姓20000餘人,其中壯丁3000,均已被曾立昌征召守城。自馮景尼營內搬來的糧草及援軍所攜足夠全城軍民及戰馬食用半月,省著點可支撐近一個月。