朱元璋封王建藩的做法,同樣出身卑微的漢高祖劉邦也采用過。劉邦建立漢朝後,立即分封同姓諸侯王,作為劉家天下的屏障。而諸侯王們野心勃勃,與中央分庭抗禮。漢景帝接受晁錯“削藩”的主張,引起了藩王的反叛——吳楚七國之亂,他們的借口就是“請誅晁錯,以清君側”。曆史常有驚人的相似之處。明太祖朱元璋去世後,由於太子朱標早逝,便由太孫朱允炆繼位,是為惠帝,年號“建文”。建文帝即位後,時時感受到有皇叔身份的藩王們的威脅,他們個個擁兵自重,根本不把這個年輕的侄皇帝放在眼裏。於是,建文帝與親信齊泰、黃子澄、方孝孺等商量削奪藩王的權力。周、齊、湘、代、岷幾位藩王相繼被削,同時命令在北平周圍部署兵力,派人監視燕王動靜。燕王朱棣是朱元璋的第四個兒子,他勢力最大,野心也最大。朱元璋死後,他一麵偷偷訓練士兵,命人日夜趕造兵器,一麵卻假裝生病,瘋子一樣成天胡言亂語,有時候還躺在地上,幾天不起來。建文帝派人前去探病,正值盛夏,燕王卻坐在火爐邊烤火,嘴裏還不停地叫冷,以欺騙朱允炆的耳目。
建文元年(1399)六月,朱允炆認為準備充分了,密令向燕王動手。不料,北平都指揮使張信向燕王告密。燕王得到消息,把王府裏充當建文帝內應的官員全抓了起來,宣布起兵。燕王援引藩王可以統領自己的軍隊征討朝中奸臣的“祖訓”,打著“清君側”的旗號,在他的封地起兵,發動了“靖難之役”,所謂“靖難”就是平定內亂的意思,其實他是以聲討齊泰、黃子澄為名,矛頭直指建文帝。
燕王起兵後,一路南下,很快攻占了很多地方,聲勢浩大。而朝中,當時功臣宿將被太祖朱元璋殺了個幹幹淨淨,建文帝竟派不出個能打仗的大將,無奈隻好起用幸存的老將耿炳文,任命他為大將軍,統率南軍十三萬伐燕。但第一場大仗——滹沱河之戰耿炳文就失敗了。此時,建文帝聽信黃子澄的一麵之詞,讓紈絝子弟李景隆取代了耿炳文任大將軍,臨陣換將,這犯了軍事上的大忌,之後南軍屢戰屢敗。而黃子澄又讓李景隆隱瞞戰敗消息,被蒙蔽的建文帝還給本來戰敗逃回京師的李景隆予以獎勵,繼續讓他統率南軍。建文二年(1400),白河溝之戰,南軍因將帥們不專心作戰,下達的政令不統一而再次大敗。但燕軍攻至濟南時,受到山東參政鐵鉉的堅決抵抗,雙方相持了三年之久。後來燕王得宦官的密報,知京師空虛,便於建文四年(1402)六月揮師渡江,而守衛金川門的李景隆竟開門迎降,於是燕王攻陷京師(今南京)。朱棣取建文帝而代之,是為明成祖,年號“永樂”。齊泰、黃子澄、方孝儒等建文舊臣被殺,還滅了他們滿門,這就是曆史上所謂的“靖難之變”。
京師被朱棣攻陷後,建文帝卻在混亂中失蹤,下落不明。有的說他在宮中自焚而死,還有的說建文帝從地道逃出城外,當了一名和尚。究竟如何,眾說紛紜,建文帝失蹤成為明代迷案之一。
遷都北京
成祖朱棣是以藩王起兵奪取政權的,他自然深知藩王權勢過重的禍害。但他剛剛登臨皇帝寶座,地位尚未鞏固,因此,恢複藩王製實際上是他采取的欲奪先予的策略。永樂元年(1403),朱棣先恢複了被建文帝貶削的諸位藩王的地位,並賞賚有加。但一待地位穩定,朱棣就繼續了削藩政策。他先後把北部要塞的藩王迂至南方,有的藩王被以各種理由廢為庶人,或者削其護衛,奪其兵權。就這樣逐步實現了削藩的目的。同時,朱棣大封靖難功臣,使得中央政權有了可靠的武力保證。
雖然與其父朱元璋不同,朱棣沒有殺戮功臣,但同樣嗜殺的性格使朱棣在一段時期內對建文帝的親信大臣,如齊泰、黃子澄、方孝孺等,展開了一場又一場的屠殺,並株連同族鄉裏。比如,建文時期的禦史大夫景清,本來成祖仍讓他繼任原職,但一日早朝,景清卻懷揣匕首,預謀刺殺朱棣。成祖盛怒下令將景清處以分肢之刑,而其族人無一幸免,均株連被殺,繼而又牽連他原籍鄉裏,使得整個村子成為一片廢墟,這次大屠殺被人稱為“瓜蔓抄”,其殘酷的程度可與朱元璋懲處胡藍黨案的手段相提並論。好在不久,成祖就刹住了這股鎮壓之風,對原來建文帝時的官員,除了堅決反對的以外,願意為本朝服務的,朱棣都量才錄用,從而穩定了當時的政局。
然而,被刺殺的惡夢卻就此揮之不去地糾纏著朱棣。加之朱棣覺得南京的血流得太多了,在當時宮殿的廣場上,近自朝廊,遠及附近的雨花台,無不是血跡斑斑,這使得朱棣對屠殺的慘景總是曆曆在目而內心不安。在這種種刺激下,朱棣更加思念自己的藩地北平,那裏是自己的發祥地,那裏有自己穩固的根基,於是便動了遷都的打算。永樂元年(1403)正月,升北平為北京,北京之名即由此始。二月,改北平府為順天府。永樂五年,皇後徐氏(開國名將徐達之女)死去,朱棣經過慎重考慮,沒有在南京建陵安葬,而是派禮部尚書及“江西派”風水大師廖均卿等人去北京尋找“吉壤”,也就是通常說的風水寶地。這些都是為遷都打下的伏筆。