七月下旬,清方守備江寧的兵力已經大大加強,而鄭成功頓兵堅城之下不攻不戰,士氣難免低落。
就在清軍反攻前幾天,鄭成功命戶官楊英巡視部隊,竟發現前鋒鎮餘新部下計程車卒離開汛地到江邊捕魚。鄭成功得報後很耽心餘新輕敵“僨事”,說:“取魚者夥兵則可,或戰兵則事去矣。”
二十二日晚上,南京城裡的滿、漢官員認為時機已到,派漢族綠營兵打頭陣,由梁化鳳率領部下騎兵五百餘名出儀鳳門、管效忠領兵出鍾阜門於次日黎明時分突然對鄭軍營壘發起衝擊。
駐守在這裡的餘新等部盔甲器械都來不及披掛周全就倉促上陣,很快被清軍擊敗,餘新被俘。清軍初戰告捷,收兵在城外紮營。
當天晚上,鄭成功依據形勢的變化,重新部署軍隊,以觀音山至觀音門一帶為集結地點,準備同清軍決戰。
派左先鋒鎮楊祖統率援剿右鎮姚國泰、後勁鎮楊正、前衝鎮藍衍屯紮大山上,作犄角應援;中提督甘輝、五軍張英伏于山內;左武衛林勝、右虎衛陳魁列陣于山下迎敵。
他自己督右虎衛陳鵬、右衝鎮萬祿在觀音門往來策應;後提督萬禮、宣毅左鎮萬義等堵御大橋頭大路;右提督馬信、宣毅後鎮吳豪、正兵鎮韓英由水路抄躡其後。
左衝鎮黃安專門負責水師,防止清軍由水上來犯。鄭成功的這一臨戰部署顯然是不正確的。因為清軍已出城紮營,次日即大舉進攻,鄭軍連夜移營,將士必然感到疲勞,也不可能熟悉地形,做好迎戰準備。
江寧城中的清方大員在梁化鳳、管效忠出戰得勝後,決定在第二天全力出擊。
具體部署:昂邦章京喀喀木、梅勒章京噶褚哈、瑪爾賽、總兵梁化鳳等率領主力由陸路出戰。提督管效忠等領軍由水路配合,總督郎廷佐等在城留守。
二十四日晨,清軍從觀音山後分路直攻楊祖部軍,鄭軍四鎮雖頑強抵抗,終因兵力不敵,幾乎全線崩潰,前衝鎮藍衍陣亡,楊祖、楊正、姚國泰領殘兵逃竄,山頭遂被清軍佔領。
鄭成功派右虎衛陳鵬、右衝鎮萬祿登山援救,但為時已晚。
清軍乘勝由山上以壓頂之勢嚮明軍猛撲,一舉包圍了駐守山谷內的中提督甘輝、五軍張英部,二將領兵死戰不得脫,甘輝被俘,張英陣亡。
列營于山下的林勝、陳魁兩鎮也全軍覆沒。後提督萬禮等在大橋頭遭到清兵首尾夾攻,兵敗,萬禮被俘,萬義泅水逃出。
鄭成功見陸師已經全線崩潰,命令參軍戶官潘庚鍾站在表示統帥駐處的黃蓋下面,自己率領親隨衛士趕往江邊調水師。
但是敗局已定,有限的水師既要保護隨軍眷屬,又要為撤退留下後路,沒有力量扭轉形勢了。
清軍乘戰勝之威進攻鄭成功的指揮所,潘庚鍾揮眾力戰直至陣亡。至此,攻取江寧(金陵)的戰役失敗。
瞭解此次戰役情況的朱慈煊當然不能坐視鄭成功兵敗,雖然鄭成功對永曆皇帝朱由榔一直不感冒。
鄭成功是南明隆武皇帝朱聿鍵的部下,是隆武帝的心腹大將。鄭成功也對隆武帝非常忠心,鄭芝龍出賣隆武帝的時候,鄭成功甚至反叛父親,也要保住隆武帝。
可惜隆武帝被何騰蛟在江西出賣了,大學士黃道周英勇殉國,隆武帝逃到長汀以後,被清軍殺害。
直到隆武皇帝朱聿鍵的弟弟紹武帝朱聿鐭,被被李成棟率領的清軍殺害以後,鄭成功才不得不在表面上向永曆帝朱由榔稱臣。
永曆帝多次寫信希望鄭成功能夠與李定國大軍會師的時候,鄭成功總是拖延時日,以至於錯過了最好的時機。
這次如果能一舉攻下江寧,那滿清韃子在江南的主力部隊將一掃而空,明軍也將在極短的時間內收復整個長江以南,給滿清韃子以重創。
於是朱慈煊斟酌片刻對李定國道:“晉王,此次延平王提兵十餘萬進攻江寧,乃是我大明抗清的大事,不容失敗,所以本太子決定率兵馳援延平王,不知晉王意下如何?”