狡猾的齊泰、黃子澄對燕王的病情有點懷疑多次勸朱允炆要有所警惕,朱允炆也加緊調兵遣將,加強了對朱棣的防備。
1399年6月,燕王府護衛百戶倪諒到應天告發燕王圖謀反叛。朱允炆馬上下令逮捕燕王府的官員和燕王的家屬,還特令北平駐軍謝貴、張昺率軍圍攻燕王府,約定燕王府的一些官員作內應,秘密命令北平都指揮使張信帶兵逮捕朱棣。
張信早已站在燕王一邊,他給燕王通風報信。燕王一得到消息,馬上就密謀布置。首先把謝貴和張昺兩人誘入府中,殺掉。然後把燕王府裏充當內應的官員都抓了起來。他來了個先發製人,宣布起兵。
燕王是個十分精明的人,他深知朱允炆是個名正言順的法定皇帝,如果自己公開打出反叛的旗號,對自己不利。於是,他搬出了明太祖朱元璋在《祖訓》中所說的話:“朝無正臣內有奸逆,必舉兵誅討”。他以“清君側”為理由起兵,說要幫助建文帝朱允炆除掉奸臣黃子澄、齊泰。
燕王領軍南下,直指京都應天。朱棣本是一位具有豐富帶兵經驗的宿將,手下又有一支經過長期嚴格訓練的精兵。再加上他駐紮北平已經很久,多年苦心經營,附近的各郡縣衛所都受他的統轄節製,所以他一起兵,就得到各方響應,紛紛前來投奔,士氣十分旺盛。他率兵很快就攻取了薊州、懷來、永平、通州等地。
朱允炆雖然處於正統的有利地位,但他是個迂闊懦弱、優柔寡斷的人,遠遠不是燕王的對手。而且,明朝的許多開國元老們都被猜忌多疑的朱元璋誅殺殆盡,他手下缺少精兵強將。手下的許多官員,皇宮裏的許多太監,見大勢不妙,紛紛投靠了燕王。朱允炆害怕了起來,連忙撤了黃子澄、齊泰的職,並派人求燕王退兵。
燕王哪裏肯就此罷休,他率兵一路衝殺,勢如破竹,意欲直搗黃龍。燕軍節節勝利,士氣越來越高。1401年,燕王率軍大舉南下,直向應天而來。翌年4月,燕軍攻打慶壁,遇到了南軍的頑強抵抗,雙方打得難解難分,十分激烈。這時,燕軍有些躊躇不前,有些將領提出暫時撤兵。燕王堅決不同意。斬釘截鐵地說:“這次進軍,隻能前進,不能後退!”沒多久,燕軍發起突然襲擊,打得南軍一敗塗地。
朱允炆無計可施,隻好再派人和燕王議和,願意割讓土地,請求燕王退兵。燕王眼看京城唾手可得,自然不願就此罷休,一口回絕,同時加緊了進攻。
這年六月初三,燕軍誓師渡江,直指應天。朱允炆看兵臨城下,形勢危急,命令手下將士死守。但沒過幾天,應天守將王景隆打開京師金川門投降,城被攻破。
燕王率領軍士進城,威武壯觀,文武百官紛紛在道路兩旁跪著迎接。燕軍進城後,隻見皇宮大火熊熊,正在燃燒。燕王馬上派人把大火撲滅,已經燒死了不少人。接著,他查問朱允炆的下落。有人報告說,燕軍進城之前,建文帝朱允炆下令放火燒宮,他和皇後都跳到火裏自焚而死。也有人報告說,他已經從地道逃出了京師。究竟他是死是活,很難確定,為後人留下了一個解不開的謎團。
曆史上把明朝的這次內戰叫做“靖難之變”,靖難是指平定內亂的意思。至此,經過三年作戰,燕王朱棣終於在1402年6月奪得了夢寐以求的皇位。這就是明成祖。到公元1421年,明成祖遷都北京,自那時候起,北京一直成為明朝的京城。