顺治十四年(1657)四月,郑成功因地方频得频失,终无了局,召诸参军集议中兴大计。吏官潘庚钟、工官冯澄世、参军陈永华都主张进军江南以号召天下。郑成功从其议,派人前往广西请桂王旨,令孙可望、李定国集滇、黔、粤、楚之师,出洞庭而会江南,以分其势。七月,郑成功率军北伐,八月入海门尧台州,九月,天台、太平、海门卫相率归附。但浙闽总督李率泰侦知郑军精锐北上,乘机分兵攻陷罗星塔和闽安镇。郑成功担心两岛有失,只得暂时回师。

十二月,永历帝晋封郑成功为潮王,其余侯伯印数十颗。郑成功设长史、审理、典宝、典杖、典膳等官,一切照王府行事。

五月,郑成功传令准备北征。重颁出军十条禁令,不准奸淫、掳掠妇女,不许擅毁民房,不准掳掠男子为伙兵(防奸细投毒),沿海归顺地方不准混抢,不许掳掠、宰杀耕牛,不许借坐给牌商船。违者本犯枭示,将领连罪不贷。十三日,分全军作三程:中提督崇明伯甘辉领兵二万五千,配船五十只,为首程;右提督建威伯马信领兵二万,配船六十只,为二程;后提督建安伯万礼领兵二万,配船六十只,为三程;郑成功亲自领兵四万,配船一百二十只,为后合,号称八十万,浩浩荡荡,向北进发。

六月,招降平阳、瑞安、进围温州,全浙震动。

七月初九日至羊山。初十日午,飓风骤起,巨浪排空,雷雨交加,天昏地暗。酉时风浪始息,船只翻沉五十余艘。将士死八千余人,其余伤损无数,郑成功的六中军船也被打破,他的第六妃嫔和四子郑睿、七子郑裕、八子郑温,并船上男女老幼二百三十一人俱没水中。郑成功只得回师舟山,休整船只部伍。

顺治十六年四月十九日,郑成功在羊山之难以后经过半年多的整补恢复,闻清朝于头年二月调遣三路大军进攻云贵桂王政权,乃再次大举北征。为了举手制胜,首先一举攻克定海关炮城,进入宁波港,尽焚清军船只。待清朝拨浙直之兵来援时,郑成功已抽兵下船,扬帆北上了。

五月初四日,师至舟山,再以军纪晓诸将:“此行我师一举一动,四方瞻仰,天下见闻,关系非细。各提督统镇十余年栉沐亲勤,功名事业亦在此一举。当从恢复起见,同心一德,共襄大事。进入京都之时,凡江中船只货物,准其插坐,但要和衷,不准争竞;其岸上地方百姓,严察秋毫无犯。”

十八日,师至崇明,清总兵梁化凤敛兵坚守。郑成功欲顺风入取瓜州,张煌言、冯澄世都主张先取崇明以为后援之地。郑成功认为崇明城小而坚,取之必迟延日月,若得瓜镇截其粮道,然后乘势取江南,则崇明不攻自破。遂于十九日移泊吴淞口。清苏松提督马逢知有反正之意,郑成功乃密书约其共围南京。

六月十三日,师抵焦山。十五日,缟素祭奠崇祯、隆武,恸哭誓师,三军皆泣下。水陆齐进,先攻瓜州。

镇江至瓜州江面十里,清军以百万巨资,用大木以两岸向江心筑起长坝,横截江流。左右复立木栅,内布火炮火铳,再以围尺大索牵接木坝两端,拒扼海舟,名曰“滚江龙”。郑成功以左右武卫屠中,甘辉居左,翁天佑居右,直捣瓜州。材官张亮督善泅水者首先斩滚江龙,郑成功挥兵大进,遂克瓜州。擒操江巡抚朱衣佐至,郑成功说:“此腐儒也,杀之徒污吾剑!”放归。为了控扼上游,截断清军江、楚之援,郑成功特委张煌言率领一支水师进军芜湖。

十九日,郑成功进泊镇江南岸七里港,二十二日夜抵银山。当时南京洪承畴部下的罗将军领铁骑千人赴援已至,其兵铁甲如雪,大言道:“这些海贼不够吾杀!”于是自为第一队,江宁提督管效忠领兵为第二队,苏、常四府之兵依次随后而进。罗兵骄躁求战,直冲郑成功中军营。郑成功亲督左右武卫亲军当其锋,几进几退。铳炮齐发,声震天地。郑军奋勇死战,无不以一当百,罗兵披靡。管效忠又督其余各队来冲。铳炮矢石,密如雨点。郑军猛冲其阵,清军大溃,遍野横尸。管效忠部率四千人,仅存一百四十人,叹道:“吾自满洲入中国,身经十有七战,未有此二阵死战者!”清军既败,镇江守将高谦、知府戴可进、太平府守将刘世贤相继献城降。扬州文武各遁,百姓以彩旗羊酒到镇江请师。句容、仪真、滁州也先后纳款。江南各地人民十多年来不见明朝衣冠,今日明朝大军重来,人心为之鼎沸。

二十八日,郑成功集诸将议取南京。潘庚钟、甘辉力主暂住瓜州,遣将分据淮扬诸郡,然后再图进取。郑成功不听,甘辉又请陆行。但大军远来,不习水土,士卒多病,时又酷热多雨,沟河难过,不得已由水路进发。

七月初七日,师至南京城外观音门。郑成功命黄安总督水师泊三汊河口,堵御清船,亲领大军由凤仪门登岸,扎营狮子山一带。

江宁提督管效忠自镇江败回南京,与江南总督郎廷佐、驻防昂邦章京喀喀木坚守不敢出战。前在瓜州被郑成功释放的朱衣佐,这时又单骑入城,建议管效忠卑词宽限,麻痹郑成功,然后破敌。效忠依计派人到郑成功大营请求道:“大师到此,即当开门延入,奈我朝有例,守城者过三十日,城失则罪不及妻孥。今各官眷口悉在北京,乞藩主宽三十日之限,即当开门迎降。”潘庚钟当即指出:“孙子有云:‘辞卑者,诈也;无约而请和者,谋也。’此乃缓兵之计,不可凭信,可速攻之!”甘辉也说应当立即攻取南京,别图进取。郑成功因江上获得两次大捷,已有骄心。且以所约苏松提督马逢知之兵未至,遂不听诸将劝告,竟许敌请。

张煌言至芜湖,相度形势,出溧阳,镇池州,拔和州,入宁国,往来于姑苏、常熟之间,传檄郡邑,大江南北,四府、三州、二十四县相率送款。他见郑成功围城不攻,也上书劝道:“顿兵坚城,师老易生他变。亟宜分遣诸师,尽取畿辅诸郡邑。”但郑成功接书,为时已晚了。

就在郑成功围城期间,攻破云南的满洲八旗兵噶褚哈、马尔赛等部,已经凯旋回京,得南京急报,星夜疾抵南京。十五日,苏松水师总兵官梁化凤统马步官兵三千余名入城。江宁巡抚蒋国柱调发的苏松、常州、杭州各处水路防兵,也陆续长驱而至。梁化凤日夜登城观望,见郑营步步相关,首尾相应,无计可施。一日巡至东北角,见一营人马屯扎白土山下,稍露疲懈,遂寻机出奇袭阵。

屯扎白土山的前锋镇余新,是跟随郑成功久经战阵的一员猛将。南京城下与清兵相对咫尺,他却若无其事,释戈宴戏,樵渔四出,营垒为空。户都事杨英查问,答云:“军机变通,总在讲妙其用。”郑成功恐其偾事,令翁天佑助守,余新为建全功,坚决拒绝。

二十日,郑成功传令诸将准备二十二日安炮攻城。有一管甲吏,破瓜州时以淫掠被责二十棍,含恨在心,当夜入城降清,告以密计。二十一日三更,清军抢先行动,挖开砌塞已久的神策门,梁化凤率五百骑兵突出。余新连日疏忽,大溃,败入萧拱宸营中。梁化凤乘势冲入,两营并遭覆没,萧拱宸浮水逃生,余新被俘遇害。清军既胜,尽出骑兵列营城外。

二十二日,甘辉、林胜、潘庚钟等劝退屯观音门,以图再举,郑成功不听,调拨各镇布阵于观音山,欲与清兵决战。二十三日,江南总督郎廷佐见郑军彻夜移营,乘其营垒未稳,集中全城兵力,抄出山后,向郑军发起攻击。由于前次镇江之役时,各镇争功,互相攻讦,郑成功怒,曾有不得命令擅自出兵者治罪的规定,所以诸将在清兵攻击下,既不敢主动出战,又不敢互相救援。杨祖、蓝衍二营首先覆没,蔡禄、陈鹏二营继又溃败。甘辉、张英埋伏山中,被敌围困,死战不出,张英阵亡,甘辉击杀数十人,亦被擒。清军乘虚掩杀,诸营俱皆动摇。万礼力战于大桥山,被乱箭射死。万义浮水而逃。林胜(广东澄海人,最雄伟,多武艺)见数镇皆败,而成功仍不发号令,说:“敌人虽胜两阵,实无多骑,藩主之不发号令而齐击者,谬也!”自挥本镇大战化凤,但遇东门清骑突出合攻,全军皆没。郑成功在山上观战见各镇并溃,嘱潘庚钟说:“尔立盖下代吾指挥,不可去盖,吾下山,催水军从后抄杀”。带领健将十余员急下快哨,至江心,遥望诸军披靡不堪,随飞舟往镇江而去。梁化凤合城内诸军,见山上黄盖高扬,挥军猛攻。陈魁见清兵逼近郑成功大营,急往救授,中箭死,将士悉赴水死。清军合师环攻,潘庚钟挥剑督护卫死战。最后全部覆没。

二十四日,郑成功到镇江,黄安领全队舟师至。溃散的诸将也陆续赶到。这次战役。计有十五镇全军覆没。损失镇将以上十四员,标下将不可胜计,整个陆军损折大半。诸将请罪,郑成功大恸,说:“是我欺敌,非尔等之罪也!”

然而,南京之败还没到不可收拾的地步,如据镇江而守,上联张煌言,四围巩固归附的数府之地,事未尝不可为。张煌言得到南京失利的消息时,也曾致书郑成功说:“兵家胜负何常?今日所恃者,民心耳。况上游诸郡邑俱为我守,若能益百艘相助,天下事尚可图也。”但郑成功已放弃镇江,顺流东下。

这时,郑成功开始重新考虑同清朝议和,授礼都事蔡政全权办理入京议和事宜。为了让清朝知道自己实力尚存,八月初十日指挥部队向崇明县城发起进攻,但没有攻下。

九月初七,郑成功回到厦门。由于师出无功,遣使报告永历帝,自贬王爵,仍用招讨大将军印。立忠臣庙祭祀死难诸臣,以甘辉为第一,哭道:“早从将军之言,吾不至此矣!”

郑成功苦心准备多年的攻取南都,刻期恢复的计划,就这样破灭了。北伐金陵的失败,自有其客观原因——西南大势趋平,清朝得以调转矛头集中对付郑成功,但郑成功的刚愎自用、骄傲轻敌以及指挥上的失宜,更是主要因素。

郑成功败撤以后,煌言势孤援绝,初欲入鄱阳以号召江、楚,但途遇清军,部众惊散,又遭清军追杀,单骑突围走,后逃至浙东海上。

当郑成功攻取瓜州、镇江,逼南京时,清廷大为震恐,命内大臣达素为安南将军,同固山额真索洪、护军统领赖塔统兵南下救授。顺治帝甚至召集六师准备亲征。南京解围的消息传到北京,顺治帝大喜,命为梁化凤画像进呈,擢江南提督。转令达素会同由西南旋师的安南将军固山额真明安达礼进军福建,同时拒绝蔡政的和谈,速捕私通郑成功的马逢知入京问罪。

郑成功江南败归,取粮的范围日益缩小,只剩下金、厦两岛,实难养活数万大军。加以十二月蔡政自北京回到厦门,报告了和议不成及清廷已派达素并浙、直、粤数省水师前来合剿的消息,郑成功深感局势严重,开始考虑向台湾作战略的转移。

顺治十七年三月,达素抵达泉州。五月十日,达素与同安总兵施琅出同安港,李率泰与黄梧出海澄港,并檄蝎石总兵苏利南洋总兵许龙、饶平总兵吴六奇出广海,宁波、温台各港水师出浙海,集满汉精锐数万、战船五百余号,分水陆三路合攻厦门。郑成功凭借海战的优势指挥全军沉着应战。清军船队顺风蔽江而来,炮矢齐发,郑船一直被压到厦门港。日午,南风渐发,海潮渐去,郑成功立命举炮起碇,手自擎旗,指挥船队奋勇冲击,风吼涛立,一海皆动,将士踏浪如飞。北人不谙水性,眩晕、颠仆、乱不成军,遂大败。“数日尸浮海岸万余,长发者(郑军)十二三,短发者(清军)十七八”。

清廷乘胜消灭郑成功的计划破产后,仍然企图再举。七月,清命靖南王耿继茂从广东移驻福建,又命都统宗室罗托为安南将军,征剿郑成功。但由于次年正月年仅二十四岁的顺治帝突然死去,清廷一时无暇顾及征战,郑成功就利用清朝“国丧”和清船靠岸这一间隙,采取了一项对中国历史有深远影响的重大决策——向台湾进军。