郑成功在收复台湾以前,主要致力于抗清复明运动。为此,他以金门、厦门为根据地,进行了多次北伐。其中,尤以最后一次规模最大,并一度取得了辉煌的战果。
南明永历十三年(清顺治十六年,公元1659年)五月,郑成功以舟山为老营,开始了最后一次北伐,矛头直指南明故都南京。一路上连连得胜,过羊山,入吴淞口,进展神速。六月初,郑成功亲率水师十余万,艨艟巨舰数千艘,溯江而上,直抵镇江城下。镇江为长江下游的重镇,南京的门户,清军横江架木,上筑战楼,楼上满贮矢石、大铳、火药等物,江中并遍布缆索,拦截舟师,耗费了数十万两白银,防守甚为严密。清廷的各路援军也纷纷云集镇江,一场恶战已不可避免。
郑成功冷静地分析了形势,决定避实击虚,首先一举攻下了江北瓜州附近的谭家洲,斩断其截江缆索,扫除了攻城障碍。清军纷纷出动,至江岸边堵截。郑军驻师江中,摆出欲强攻登陆的架式。时值酷暑,清军因日夜提防,疲惫不堪,只得强令镇江百姓送饭送水。有时刚要解甲下马稍作休息,江中战鼓又起,只得仓皇而上。成千上万的兵马鹄立于骄阳之下,又饥又渴,又累又热,人畜中暑者不计其数,士气日益低落。郑成功看准时机,突然强行登陆,麾军大举进攻,又乘风放火,清军顿时乱作一团,自相践踏,一败涂地,战楼横木,尽被焚毁,镇江城被一举攻下,清军提督管效忠只带着几百名残兵败卒逃入南京城中。郑军中有一个名叫周全斌的小将,骁勇过人,在各次战役中,他都奋不顾身,先登陷阵。镇江城下,他腿上中了一箭,却毫不犹豫地折断箭杆,继续杀敌。郑成功立即将他提拔为都督,让他留守镇江,自率大军,直扑与镇江隔江斜对的瓜洲城。又一场大战,郑军几乎全歼了清廷派赴瓜洲的漕运援兵,乘胜攻克了瓜洲。至此,地处南北运河入江口的水路要津镇江与瓜洲,均已落入郑军手中。‘
七月,郑成功率大军进逼金陵城下,又三战三捷,锐不可当,南京周围的城邑如“太平、宁国、池州、徽州、广德及诸属县皆请降,得府四、州三、县二十四”(《清史稿·张煌言传》),“大江南北,相率送款”(清·徐鼒《小腆纪年附考》卷十九),东南大震。郑成功又于南京城外连营八十三座,切断水上交通。此时的南京已成了一座孤城,城中仅万余兵力,面对围城的十万大军,真是危若旦夕。
可是,就在这关键时刻,郑成功却骄傲自满起来,认为“京城在握,不烦攻击自下”(清·李介《天香阁随笔》卷二),误信了清江南总督郎廷佐的诈降奸计,整日里置酒高会,并亲率文武僚佐,于南京城东拜谒明孝陵,预祝胜利。大将甘辉劝他迅速攻城,以防变生不测,也被他一口拒绝。终于功败垂成,遗恨终身。
清将郎廷佐,一则虚言与郑成功周旋,二则加紧布置守城,三则日夜催调各路援兵。而郑成功呢,一等郎廷佐献城投降,二怕强攻伤亡过大,三想待“援虏齐集”南京城下后“邀而杀之”(清·杨英《先王实录》永历十三年条),使守敌不攻自破。因此不但围而不攻,而且围而不严。部下则多松懈麻痹,整日以饮酒捕鱼为乐。
这天,郑军中一偏将因触犯军令,怕遭惩罚,连夜暗缒入城投敌,将郑军何处营虚,何处营实,何营何日卸甲休息等情和盘托出。郎廷佐大喜,暗派军士假扮为城外村民,分乘小舟,满载酒肉,于第二天混入郑军各营,与诸将士作交易。这种种迹象,竟未能引起郑成功的警惕。七月二十三日,清军分门东、西而出,分击郑军首尾。清苏松总兵梁化凤又自崇明绕道赴援,与城内守军配合,深夜突袭郑军前锋。郑军仓促应战,苦斗多时;清军又潜开神策门、仪凤门,直捣郑军中坚。郑军毕竟兵力雄厚,时间一长,清军渐渐抵挡不住,各路纷纷败退。就在这时,混进郑营的细作放火烧船,郑军大乱;败退的清军望见火光,知道郑军内部有变,又鼓勇返身杀来。郑军终于全线溃败,战船被焚毁五百余艘,郑成功倚为左右手的甘辉、余新二提督都遭擒获,大将三十余员阵亡。郑成功奔逃八十余里,才抵达舟船而脱险,只得退至镇江,会合周全斌的守城军队,恸哭下海而去。由于南京城下的惨败,郑成功被迫中止了北伐,转而去收复了台湾。
当郑成功大军北伐之时,“滇南、川、贵、楚、越、荆、襄之地,豪杰辈出,皆怀恢复之心”(清·江日升《台湾外纪》卷四)。北伐军如能收复南京,对各地豪杰无疑是一巨大鼓舞,对正在西南地区浴血苦战的李定国军是一巨大支持,对清王朝则是一沉重打击,那么,郑成功就完全有可能在江南站稳脚跟,即使不能完成他的宏愿,也完全有可能与北方的满清政府相抗衡。尽管历史不可能假设,但郑成功因骄傲轻敌而功败垂成,这实在是一个深刻的历史教训。