洪武三年(1370年)四月,明太祖朱元璋为确保明王朝的长治久安,想方设法加强皇室本身的力量,其具体的办法就是分封诸子为王。他把宗室二十五人(24个儿子和1个从孙)封为藩王,分驻北部边境和全国各战略要地。
明朝初年,每一个藩王除食粮万石以外,还有军事指挥权。九位塞王(辽、宁、燕、谷、代、晋、秦、庆、肃)因有防御蒙古贵族侵扰的重任,所以护卫甲士尤多。晋王、燕王多次出塞征战,打败蒙元残余势力的军队,尤被明太祖重视,军中大将皆受其节制。尤其是燕王朱棣,由于功绩卓著,朱元璋令其“节制沿边士马”,地位独尊。
在分封诸王之后,朱元璋曾规定凡受封诸王必须离开京城,到封地就藩。不允许各亲王之间相互往来,即使入朝,也不能同时前来,必须一王离京,另一王才可启程,目的是防止各诸王间相互勾结对朝廷不利。并且在其成法中有一条是关于“靖难”的。即规定藩王有移文中央索取奸臣和举兵清君侧的权利。“靖”指平息,扫平,清除。“靖难”代表平定祸乱,平息战乱,扫平奸臣的意思。而清君侧的前题就是皇帝必先召唤藩王,藩王才能起兵,且成功铲除奸臣后要五日之内离京。
洪武二十五年(1392年),皇太子朱标病逝,其深得明太祖喜爱的次子朱允炆被立为皇太孙。洪武三十一年(1398年)闰五月,朱元璋病故,朱允炆即位,是为明惠帝,改元建文。朱元璋对皇孙即位放心不下,曾在病中立下遗诏,不许诸王“入临、会葬”,但燕王朱棣得知父王病逝时,仍直奔京师南京。朱允炆闻讯后,立刻派人持敕,令朱棣返回燕京(今北京),对此朱棣十分不悦。
建文帝即位后,镇守北部边疆的诸王已有很大的权势,他对这些皇叔们开始忧心忡忡。建文元年初(1399年),朱棣曾亲自入朝,自恃皇叔身份,径直走皇道入宫,登陛不拜。监察御史曾凤韶弹劾其不敬,户部侍郎卓敬也密奏,建议将他徙封至南昌,但都被朱允炆以“骨肉至亲”,婉言拒绝。朱棣察觉到朝廷对自己怀有贰心,回燕王府后,便托辞患病,以观事态的变化。
面对藩王的势力越来越大,建文帝在兵部尚书齐泰、太常卿黄子澄的建议下开始削藩,先后废除五位亲王(周、齐、湘、代、岷)。由此,藩王与朝廷开始决裂,此时实力最强的燕王就成了真正的众藩之首。
燕王朱棣见到几位藩王先后被削,明白如此下去必无法逃过此劫,遂一边争取时间一边做战争准备。1399年初,朱棣装病,诱使惠帝放三子回北平,之后由于属下被朝廷处死,遂装疯。后来王府长史葛诚叛变,密奏朝廷“燕王装病”。
建文帝得知燕王异状后,1399年七月初四,命张昺、谢贵带兵包围了燕王府。朱棣假意将官属全部捆缚,请二人进府查验。二人进府后,朱棣派出府内死士将其擒获,并连同府内叛变的葛诚、卢振一同处决。当日夜里,朱棣攻下北平九门,遂控制北平城,并指齐泰、黄子澄为奸臣,以“清君侧,靖国难”的口号起兵反抗明朝中央政府。建文帝随后急召各诸王讨燕,有的诸王积极响应朝廷号召,有的诸王则被燕王收编。自此燕王与建文帝之间展开了激烈的夺位与保位之争。
建文四年(1402年)六月十三,燕军抵金陵。守卫金川门(位于南京城西北面)的朱橞和李景隆望见朱棣麾盖,开门迎降,是为金川门之变。燕军攻入金陵,江山易主。历时四年的“靖难之役”以燕王朱棣的胜利而告终。
燕王进京后,宫中突起大火,建文帝下落不明。有人说建文帝于宫中自焚而死,或云建文帝由地道出亡,落发为僧,云游天下。从此建文帝的真正下落成为明史上的一大悬案、千古之迷。