清晨,烟消日出。常胜军的大炮开始轰鸣,港东的营墙被炸开了一道大口子,张遇春不顾太平军的密集火力,率领士兵一拥而上,边战边进,抢渡浮桥,从缺口攻入营垒。常胜军也推进至港边掩护。太平军英勇顽强,创病皆起,宁死不退,以刀矛进行近身搏斗,战至最后一兵一卒,营垒遂陷。
港西的太平军营垒,也被有字营、常胜军围攻。激战之际,四五万太平军从谢家桥、大义桥、小市桥等处赶来增援。漫山遍野的旗帜,滚滚而来,喊声裂空。黄翼升领军迎战,刘秉璋率亲兵营绕击援军之后。铭字、鼎字两营偃旗息鼓,等到太平军行至山麓时,一声炮响,两军齐出,四面围住厮杀。太平军措手不及,掉头便逃。李鸿章奏报:“我军并力奋击,人人殊死战,贼为披靡,纷纷退去,当将福山石城收复。”
入夜以后,淮军乘胜进击,偷袭大义桥、谢家桥的太平军营垒。李鸿章有如下记述:“是夜,各营复选精锐,携带喷筒、火箭,潜袭大义桥、谢家桥贼垒。齐声喊杀,贼于昏黑惊遽中,不知我军多少,弃营狂奔,我军节节扫荡,踏毁沿途贼营数十座。”① 常熟城内的周兴隆、骆国忠等守军,见城外火光四起,知道援军杀到,立即开城,从四门杀出。
此战太平军大败,损失惨重。被围七十余日的常熟、昭文,在最后关头,得以转危为安。黄翼升、刘秉璋、潘鼎新、刘铭传等将领,神气活现,骑着高头大马,列队入城,出榜安民,慰劳降众。
战后无数尸体散落在方圆几十里地,有淮军的,也有太平军的,横七竖八,混在一起,已分不出谁是广东人,谁是安徽人,谁是父亲,谁是儿子,全部被拖到路边用薄土埋了。落在水里溺毙的太多,以致水不能流,不得不雇人下水用竹篙挑开尸堆,疏通河道。据县志统计,嘉庆二十五年(1820),常熟县有三十七万八千人,昭文县有二十六万人;经过战争之后的同治四年(1865),常熟仅有二十一万三千余人,昭文亦只有十八万六千人。 数字变化的背后,隐藏着无数人间悲剧。
太平军太仓守将会王蔡元隆屡次派人向李鹤章递降书,表示愿意献城,并和李鹤章约定三月初九巳刻,在城内举事,大开城门迎淮军。当日中午,东门有几千名头扎白巾的太平军列队而出,声称是迎接淮军的,李鹤章不疑有诈,率军准备入城。突然,大股太平军从南门如潮似浪地杀出,包抄淮军。一时伏兵四起,枪声大作。李鹤章大惊,且战且退,腿部被流弹击中,伏马而逃。他手下大部分是少年兵,战斗力很弱,被太平军一路追杀,伤亡数百人。
向李鸿章报告战况时,程学启说李鹤章部死亡四五千人。后来,李鸿章问刘秉璋,刘秉璋说大概死了千百人。战后,李鸿章调侃李鹤章:“或言四五千,或言千百,是大败也,不可讳饰。”李鹤章埋怨刘秉璋:“吾未向公乞烧埋银两,何诬至此?”刘秉璋大笑道:“如其为诬,则言四五千者,大诬也;言千百者,小诬也。吾今小巫见大巫矣。”
李鹤章吃了诈降亏之后,李鸿章急调开字营驰援,并令刘秉璋监战。刘秉璋驰抵太仓,程学启也率军赶到,程对刘说:“李观察(鹤章)已不能军,我队伍未齐集,不敷分布,且宜有待。”刘秉璋说:“李观察虽失利,自将弁以下,耻为贼所卖,急于一试,足当一路,愿公勿疑。”程学启奋然应允。
第二天,程学启几乎也吃了诈降的大亏。当时他正准备在西门攻城,见河上有太平军几千人,乘坐八十多条船,从昆山驶来,太平军派人上岸联络,表示愿意投降。程学启与使者交谈时,见对方态度过分亲热,产生怀疑,于是暗嘱部下做好作战准备。果然,从南门冲出的太平军,分出一股直扑西门。船上的太平军也立即亮出武器,大呼“杀妖”,冲上岸来,意图前后夹击。程学启率众奋力抵抗,反而把诈降的太平军杀得弃甲曳兵,落水死者不计其数。