1659年,南明陷入了进退两难的境地,李定国率领的大军败在了磨盘山战役中,永历帝无奈下进入了缅甸,这个时候,西南的地盘都被清朝攻占了,眼看是南明就要毁于一旦的情况下,郑成功调集十万兵马开始北征,甚至开始进攻南京。要知道,这也是决定南明能否继续存在的契机了,但由于郑成功非常轻敌,结果兵败如山倒,葬送了南明。这一年,随着张煌言的接应,郑成功轻松攻占定海,将清军的战船都给焚毁了。
随后十万兵马就坐上了战船,兵分三路北征,而清军提督却没有任何抵抗,实际上,他们早就进行了沟通,后者仅仅是在观望天下局势,如果郑成功真的可以攻占南京,自己就会选择投降。紧接着,郑成功百战百胜,最后拿下了瓜州,没过多久,清军巡抚直接选择投降。仅仅过了六天,清军巡抚蒋国柱带领的兵马也被打得四散而逃,高谦和戴可进毫不犹豫的投降了。
这个时候,清军几乎没有多少留守在南京了,更何况,南京是非常辽阔的,所以也做不到任何位置都安排防御,如果郑成功乘胜追击,也许就攻占南京了。镇江和南京几乎是在挨着的,但郑成功的安排出现了问题。等到郑成功进入镇江四天后,开始安排接下来的事情,身边的将领甘辉表示,征战清军胜在兵贵神速,可以趁着士气如虹,清军闻风丧胆没有多少抵抗能力的时候,连夜赶路直接攻下南京。
但别的将领却表示,我们的兵马远道而来,根本适应不了这里的水土,兵马数量多,且天气非常的炎热,想要日夜兼程恐怕不太现实。最后,郑成功没有同意甘辉的安排,反倒是选择了走水路,毕竟郑成功的兵马都是坐着战船来的,还是海船,因此在长江中的移动速度不够,一直持续了10天时间,总算是来到了南京城门处。然而郑成功并没有选择进攻,反倒是开始举办祭祀活动。
过了很久之后,郑成功才安排兵马包围南京,一直持续到撤退,中间都没有真正意义上发起过进攻。而清军也不会坐以待毙,直接开始调集各路的兵马,来支援南京。有趣的是,清军水师大都督甚至采取了诈降,让郑成功宽限自己30天,到时候就会直接投降。而郑成功还相信了,就在后者一直畅想着清军放弃抵抗的时候,清军的大部队也慢慢来到了南京城,尤其是骑兵。随后清军开始主动挑衅,郑成功的心腹爱将丝毫不惧,一番交手下,被清军活捉了。
郑成功也抓紧时间调整机会,打算和清军一较高下,但这个时候,明朝兵马的士气早就被消耗殆尽了。两天过后,双方开始了正面交手,郑成功带来的兵马被打得四散而逃,在这个过程中,蓝衍和张英直接战死沙场,甘辉和万礼都被活捉了,郑成功的大部队几乎伤亡殆尽,这场战役的落败,也导致郑成功失去了北伐的能力,直接撤回了自己的大本营。