七月廿四,清军江宁最高指挥官喀喀木将八旗军和绿营军混合编队,陆上分为3路,水上另有1路,杀出城去,与郑军作最后决战。其具体进攻方向如下:
第1路清军,从东北、正东、东南、正南、西南、西北6个方向围攻幕府山郑军主力。第2路清军,从西面攻击幕府山。
第3路清军,从北面进攻幕府山,并伺机焚毁长江上的郑军船只,切断其退回江边的通路。
第4路清军,从水路出发,由提督管效忠率领,攻击郑军江面上的船只。
清军首先以火炮轰击郑军营寨,紧接着便直接展开冲锋,骑兵也都下马步行作战。山上的郑军在人数上处于劣势,防御工事也未完善,很快就败下阵来。
不到半天时间,郑军多处营寨阵地相继被清军攻破,剩下的人马纷纷向江边溃散。郑军水师指挥黄安所部一面拼死抵抗,一面掩护岸上逃来的败兵和随军家眷们撤退,先后从水中救起数千名跳入江中逃回的郑军士兵。激战中,郑军水师共损失了大小船只500多艘。但他们最终抵挡住清军的水上攻势,掩护残余陆军撤到船上,避免了全军覆没的悲剧。
当天夜里,郑成功下令全军退往镇江。江宁围攻战就这样以郑军的惨败告终。
经过七月廿三、廿四两天激战,郑成功军的前锋镇、左先锋镇、援剿右镇、后劲镇、前冲镇、宣毅左镇、左武卫、左虎卫等陆军部队先后被重创或歼灭,其他部队也有多少不等的伤亡。以每个镇的人数为2500计算,郑军的损失至少在2万人以上。同时,还失去了提督、镇将等高级将领多人。可以说,是郑成功军事生涯中最惨重的一次损失。清军在江宁之战中获得全胜,但也付出了相当高的代价。管效忠、梁化凤等清军将领都感慨,郑军是自己一生征战中遇到的最强对手。