清军初次受挫后便撤回银山安营扎寨,二十二日夜,郑成功派精锐部队夜袭银山,击溃清军。
次日清晨,郑成功乘胜向清军残余部队发起全面进攻,火炮、弓矢、火箭齐发,清军大溃,撤回南京,郑成功取得了镇江大捷。
当时的南京总督正是洪承畴,他得知此事连忙叫部下的一千个铁骑兵赶去应援。那些铁骑兵多是蒙上铁甲,骑了大马,威风凛凛,杀气腾腾。常州、无锡、江阴各地也开始集兵,共计一万五千人。
他们根本没把郑成功的军队放在眼里:“不过是些海贼,哪里值得一打呢!”
他们哪里知道,郑成功的水兵非常厉害。他们的船往来漂泊不定,你打到东边,他走到西边;你走到西边,他又跑到东边。就这样跑来跑去,让你摸不着头脑。
这样一来,清兵在江面一连守了三日三夜,疲惫不堪。
就在这时,郑成功的水兵从江上杀了过来,四面包围,仿佛是飞将军从天而降。清朝铁甲骑兵奋勇向前,郑成功的兵也没有一个退后的。清兵人强马壮,锐不可当。没多久,郑成功的兵忽然举起白旗。清兵十分高兴,以为郑成功要退兵了。可等到清兵追来,郑成功突发大炮,一时炮火冲天,清兵自相践踏,死伤不计其数。
清兵大败以后,提督管效忠从滇南带了几万兵,分道来应战,最终败走银山。郑兵乘胜追去,万军呐喊,天地震动。郑成功得了镇江之后,在岘山之上大宴将官兵士。郑成功的部下,崇明伯甘辉劝郑成功说:
“瓜(洲)、镇(江)为南北咽喉,但坐镇此,断瓜洲,则山东之师不下;据北固,则两浙之路不通,南都可不劳而定矣。”
但郑成功不肯听他的话,率军去打南京。清廷南京总督郎廷佐足智多谋,他听说郑成功率军而来,一面施展缓兵之计,向郑成功假意请降,一面又提出按大清旧律,以守城30天易手,方不加罪守城将士及其家小为由,请求宽限30天。郑成功信以为真,于是屯兵城下,旷日持久,一拖就是两个月,没有全力组织攻城。
甘辉又劝郑成功说:“用兵贵在神速。现在,他们的兵多,我们的兵少。我们利在速战。速战,则敌人不及预备,容易攻下来。要是慢慢地等着,等到敌人已经布置好了,救兵也来了,我们就没有办法了。”
可郑成功又不肯听他的话。
后来,清兵的城内防守已布置好了,各路的救兵也都到了。于是出城来同郑兵交战,四路夹攻,使郑成功的部下来不及应对,落败而逃。甘辉被清军抓获,因不愿意投降被杀。郑成功乘船逃走,回到海岛之后,想到自己不肯听甘辉的话后悔不已。于是他自贬王爵,并且修了一座忠臣庙,把死难的忠臣都列在里面。甘辉神位,被放在了第一位。
清兵得胜以后,决定率兵进攻郑成功的地盘。顺治十七年(1660年)五月,清廷率海陆重兵讨伐郑成功,郑成功在厦门防守。
等到清兵来的那一天,狂风大作,北方的兵士不懂水性,坐在那狂风大浪的船里头昏脑涨。就在这时郑成功举旗进攻,不习水战的清兵弃船逃岸。郑成功继续上岸应战,清兵死伤无数。
受了这次打击以后,清廷也知道了郑成功的厉害,不再敢轻易动兵。
然而厦门是座孤岛,当时粮草匮乏,难以给郑成功的军队提供充足的给养,这时候,前荷兰通事何斌建议郑成功去台湾。