初十,戈登帶著四百名常勝軍和四尊小開花炮重返前線。十一日黎明時分,天空濃云密布,一片昏黑。開字營、新左營介字、魁字等營,早早吃過干糧,出動一半人馬,與水師戰(zhàn)船配合,架搭浮橋。其他各營都已進入預(yù)定的進攻地點。
東方終于露出一線曙色,但大霧籠罩,視野迷茫。程學(xué)啟率領(lǐng)親兵和洋槍隊,會同戈登的常勝軍,從中路直逼城墻根下。詎料,太平軍已于半夜?jié)摮龀峭?,在大霧中埋伏了兩萬多人馬,當(dāng)淮軍走近時,伏兵齊出,槍彈密如驟雨,從四面八方潑向淮軍。淮軍士兵像刈草似的倒下一大片。戈登馬上指揮開炮還擊,空中硝煙滾滾,與大霧攪在一起,更是什么也看不清楚。
李鴻章記述:“戈登連放開花小炮,擊中多賊,該逆大股稍卻。程學(xué)啟揮令各軍乘勝進擊……該逆奔逃無路,半就擒誅,計共殺斃賊匪萬余名,落水死者不計其數(shù),其破賊營二十四座,奪獲旗幟、器械三四千件,賊馬二十余匹,余匪不及入城,望西鼠竄?!?只見城外尸橫遍野,血肉模糊,如同一個屠宰??
然而,更大規(guī)模的殺戮卻接踵而來。四月十三日清晨,程學(xué)啟率三營及水師,由大河直抵正義鎮(zhèn)。昆山西面是陽澄湖,北面為巴城湖,南面為青陽江,只有一條旱路通往蘇州,就是正義鎮(zhèn)。李鴻章判斷:“我軍必先據(jù)其后路要隘,使城賊膽落,則破之必矣。且破城后,不致一名漏網(wǎng)?!币虼耍虒W(xué)啟以重兵奪取這個通道,目的就是要把昆山的太平軍一網(wǎng)打盡,趕盡殺絕。
為了把正義鎮(zhèn)牢牢掌握,出動了淮軍三個營、常勝軍兩百多人,攜帶多門火炮,加上水師的多條戰(zhàn)船。中開營洋槍隊居中策應(yīng),各營分路進擊。一顆顆炮彈準(zhǔn)確地落在太平軍營壘上,騰起團團塵土。槍彈橫飛,喊聲震天?;窜姲l(fā)起一波一波連續(xù)的沖鋒,終于攻陷太平軍的營壘,消滅了兩三千守軍。常勝軍會合水陸各軍,銜尾追擊,一路又殺了三四百人。
正義鎮(zhèn)的失守,令昆山城內(nèi)的太平軍感到絕望,他們集結(jié)最后的精銳部隊,試圖突破重圍。城門一開,洶涌而出。李鴻章記敘:“(慕王譚紹光)退無所歸,復(fù)率三四萬賊直撲我營,當(dāng)督諸軍前往抵御,各水師亦開炮夾擊,擒斬二三千名,賊乃奔潰,我軍乘勝逐北,斃賊尤眾,余匪敗回昆城。”至此,昆山太平軍的士氣趨于瓦解,郭松林僅以一支四百人的小隊,就俘虜了三千多太平軍,并押解到上海。
淮軍各路會合,把昆山圍得水泄不通。黃昏,太平軍組織第二次突圍,從小西門沖出。李鴻章以令人驚悚的筆觸,描寫了戰(zhàn)爭史上殘酷的一幕:
果見慕逆等糾合大股由小西門一路拼死猛撲,意在奪路狂奔。因排列洋槍迎擊,我伏兵四起,呼聲震天,水師炮船連環(huán)轟打,賊不能支,紛紛回竄,自督洋槍突入賊隊,郭松林左右沖突,斬殺傷斃者不可數(shù)計,兩岸積尸數(shù)尺,河水為之不流……槍船由水關(guān)潛進,劉士奇等各架云梯,蟻附而上,遂于十四日卯刻將昆山、新陽兩縣克復(fù)。其守城各逆無路奔逃,盡行剿滅。計一日一夜生擒悍賊七千余人,轟斃斬斃二三萬人,落水死者無算。