期间,郑军以50尊小型火炮对荷军展开炮击,荷兰领航船上4门舰炮也不断对郑军发射弹丸,但双方士兵素质都不错,炮击没有对他们造成多大影响。荷兰人后来对铁人军评价非常高,认为他们兼顾了防御力与机动性,火枪无法伤害他们。郑军刀盾手也异常强悍,和荷兰人肉搏丝毫不落下风。当郑军500人的迂回部队无声无息地穿越密林,夹击荷兰侧翼时,荷兰人很快崩溃,郑军遂全线突击,两面夹击荷军,荷军战死160人,损失三分之二,贝德尔上尉被杀。
陆战方面,陈泽所部1000人对战荷军240人。荷兰指挥官贝德尔上尉按照莫里斯规范,将240名荷兰人组成2个方阵,每阵10列,每列12人,边前进边放枪。郑军有500人和荷军直接对阵,包括弓箭手、火枪手、盾牌手,以及极少量铁人军。虽然荷兰人的火器要胜过郑军,而且经过南京之役的损耗,郑军的火枪手比例已经很低,但郑军的箭雨依然给予荷军极大压力,很快郑军就顶着弹幕扑到荷兰人面前,逼迫荷兰人与他们肉搏。
荷军出动了5艘夹板船(从料罗湾海战来看,一艘夹板船可以对阵3-5艘中国帆船),2艘双桅船及十几艘小艇,进攻12艘郑军帆船及岸上的炮垒,由于水浅和逆风,以及郑军有着更优越的航行技巧,实力占优的荷兰舰队惨败,损失300多人,郑军只损失了不到百人。台江海战证明了东方的海军战斗力完全可以不输给来自西方的殖民者。此后双方陷入了长期的对峙。10月10日,荷兰军“安克汶号”前往澎湖列岛劫掠食物,90名荷兰人被30多名郑军伏击击败,有36人被杀或者俘获,这次以少胜多再次证明郑军的战斗力。
此战让郑成功付出巨大代价,大将甘辉、万礼、陈魁(前文提到的铁人军将领)等数十名中高级将官先后殉国,而郑军损失人数在两三万以上。在攻打崇明未果后,郑军只能撤回金门、厦门。而策应郑成功的张煌言抗清义军,孤悬于芜湖,遭清军围攻,只能避走浙东,国姓爷北伐和南明复国希望只能化为东逝水中的泡影。
国姓爷信以为真,命郑军原地不动,没有派兵扼守各地来往南京的要道要津,结果清军各地的增援部队,源源不断地开进南京。其中威胁最大,就是苏松镇总兵梁化凤,他率领三千绿营兵驰援南京,就是这群人将郑成功的铁人军打得落花流水。
而铁人军表现非常窝囊,不是自相践踏而亡;就是跌入山谷越入水中,无法爬起死于清军的连枷之下。后方遭遇梁化凤的奇袭,前方鏖战的郑军没有接到国姓爷的命令,不敢回援,结果被清军包抄合围前后夹击,损失惨重。
郑成功祭拜明孝陵之后,手下将士也受其影响麻痹大意,饮酒作乐,不把清军调动放在眼里。而南京的清军,在兵力得到补充后,不断派出小股部队袭击郑军,试探虚实。郑成功在甘辉的劝说下,在农历七月二十一日准备攻城,总兵梁化凤持刀带头冲锋,攻击驻防在仪凤门的郑军前锋镇余新所部。