朱棣起兵後,以部將郭資戍守北平(今北京),乃舉兵拔居庸關,破懷來,取密雲,以穩定和鞏固大本營。僅20天,朱棣所部已達數萬人之多。在燕王“靖難”軍的進攻下,北平附近州縣紛紛倒戈,投降朱棣。
得知朱棣據北平反叛,朱允炆於八月任命長興侯耿炳文為大將軍,駙馬都尉李堅為左副將軍,都督寧忠為右副將軍,率大軍北伐燕王。同時部署其他將領各統偏師步騎,數路並進,號稱百萬大軍,約定行程日期,直搗北平。同時傳檄山東、河南、山西三省供給軍餉。不久,耿炳文所部與靖難軍戰於真定(今河北正定)。朱棣避實就虛,趁中秋之夜官軍飲酒作樂之機,渡白溝河,破雄縣,之後大敗耿炳文所部。耿炳文逃人真定城中,閉門固守。靖難軍攻城三日不克,還師北平。
官軍敗北,朱允炆大怒,又改命李景隆取代耿炳文,繼續統兵平定燕王之叛。又令遼東江陰侯吳高等領兵圍攻永平(今河北昌黎西北)。朱棣留下少量兵將堅守北平,自己親統大軍救援永平。吳高怯懦,不敢應戰,退保山海關。李景隆自恃兵多將廣,率部直攻北平麗正門。守城將士及城中百姓奮力拒守,多次擊退官軍進攻。朱棣得知李景隆率兵攻北平,便回師以奇兵左右夾擊,李景隆力不能支,被靖難軍連破七壘,隻得連夜逃遁。所部聞訊,紛紛丟棄兵甲、糧草,慌忙南逃。
李景隆兵敗,黃子澄卻藏匿不報。待朱允炆風聞察問,黃子澄仍借口天寒,士兵凍餒暫退德州(今屬山東)。同時派人密告齊泰不得泄露失利之事。朱棣又上書陳述道理,並以誅齊泰、黃子澄傳檄天下。迫於形勢的壓力,朱允炆隻好罷免齊泰、黃子澄的官職,但仍舊依靠二人“籌畫治兵”。朱棣得知李景隆雖然兵敗,卻於德州集結兵力,企圖等明年春天,再攻北平,遂於建文二年(1400)正月,先發製人,率兵攻占蔚州(治今河北蔚縣西南)。四月,於白溝河再度大敗李景隆軍。五月入德州,隨後兵圍濟南(今屬山東)。李景隆逃人濟南後,據城固守,靖難軍久攻不下,便引水灌城,亦不克。
九月,朱允炆再遣大將軍盛庸總領平燕大軍北伐。朱棣派兵襲擊滄州(今屬河北),俘都督徐凱。然而十二月,靖難軍於東昌(今山東聊城)敗於官軍,張玉被斬,靖難軍潰敗而逃。張玉陣亡,令朱棣悲痛欲絕。而朱允炆以官軍大捷,詔複齊泰、黃子澄官,仍領軍國事。
建文三年(1401)二月,朱棣再次率軍南下,於夾河擊敗盛庸所部。此戰之後,朱允炆又坐立不安,下詔奪齊泰、黃子澄官,貶至外地,且沒收其家產。靖難軍夾河大捷,士氣倍增,又連戰三捷。朱允炆急令駙馬都尉梅殷鎮守淮安。
建文四年(1402),朱棣指揮靖難軍攻陷沛縣(今屬江蘇)、蕭縣(今屬安徽)、泗州(治今安徽泗縣)、盱眙(今屬江蘇),進至揚州(今屬江蘇)。五月,攻占儀征(今屬江蘇),進逼建康。朱允炆忙下詔,令天下諸路“勤王”,但這絲毫不能阻擋靖難軍的南下。六月,靖難軍渡長江南進,一舉擊潰盛庸的設防,占領鎮江(今屬江蘇)。一籌莫展的朱允炆見大勢已去,提出割地請和的條件,請求朱棣退兵,朱棣堅決不允,眾朝官見朱允炆已無回天之力,紛紛離朝而去,朱允炆更陷入孤立無援的境地。
不久,朱棣率軍抵達建康城金川門,守城的穀王朱穗開城請降,朱棣進入城中,遂立為皇帝,建文帝朱允炆於混亂之中,不知所終。
注釋
①《續通考》卷二○八。
②穀應泰《明史紀事本末》卷一四。
③④穀應泰《明史紀事本末》卷一五。
⑤《明史》卷一一六《諸王傳序》。
⑥《明史》卷一三九《葉伯巨傳》。
⑦《明史》卷四《恭閔帝紀》。
⑧《明史》卷三《太祖紀三)。
⑨《明史》卷一一七《寧王權傳》。
⑩《明史》卷五《成祖紀一》。
《明史》卷一四一《黃子澄傳》。
《皇明祖訓·法律》。