6月20日(太平天国丙辰六年五月十四日,咸丰六年五月十八日)清晨,太平军发起对张国梁等军的攻击。“两家列阵想(相)迎,各出门旗答话。步战汉兵,马战满兵,两交并战,自辰至午。”天京守军乘势从南门与通济门杀出,直扑七桥瓮清军营盘。向荣亲率1200名兵勇前往增援。午时,石达开率生力军由灵谷寺后翻山围扑马队的4个营盘,将其焚毁。又乘胜焚毁台勇、苏兵营盘2座。天京守军又从洪武、朝阳等门发起对江南大营正面的攻击。由于各营均只有少量兵勇留守,在太平军凌厉的攻势下,其湖南、广东、四川、贵州官兵及广勇营盘相继被攻破。张国梁等军在青马群与太平军交战,“各营火药、铅弹俱已打完”,亦陷入危境。石达开带曾锦谦、张遂谋等引军加入战斗,清军骑兵因失巢先败,张国梁脚受枪伤,继之亦败逃七桥瓮营垒。孝陵卫一带满汉营盘20余座均被太平军摧毁,仅剩向荣左右数营及七桥瓮张国梁营垒未被攻破。但当夜,向荣即在张国梁掩护之下,仓皇逃至淳化镇。太平军未予追击。江南大营损失惨重,仅阵亡的将官即有副将巴图,参将陈明志,都司李发荣、刘秀珠、李振甲等多名。
向荣在淳化镇亦未能站住脚跟。他与诸将商议,认为从大局考虑,以退至丹阳最为合适,于是“令即拔队分起驰赴丹阳,将城守一切布置设防,并于城外择要赶筑营盘,俾资战守”。