靖难之役,别称靖难之变,是建文元年(1399年)到建文四年(1402年)明代统治阶级內部角逐皇位的战事。明洪武三年(1370年)四月,明太祖朱元璋为保证大明朝的安定团结,想尽办法提升皇室自身的控制力,其实际的方法便是分封制诸子为王。他把宗室二十五人(24个孩子和一个从孙)封为诸侯王,分驻北边边境线和国内各兵家必争之地,想通过他们来屏藩皇家。受封诸王在自个的领地建立王爷府,设定官属,影响力非常高,公侯重臣进见亲王都得伏而拜谒。
明洪武二十五年(1392年),太子朱标病亡,明太祖立朱标次子朱允炆为皇太孙。武三十一年(1398年)闰五月,明太祖朱元璋病逝,庙号太祖,皇太孙朱允炆继位为帝。
建文帝继位时,驻守北边边境的诸王现有非常大的势力,宁王朱权“带甲八万,革车六千”。燕王朱棣更掌有“节制沿边士马”的重权。朱允炆对那些皇叔们愁眉不展。建文帝与兵部尚书齐泰、太常卿黄子澄商议撤藩之事。齐泰、黄子澄以诸王势力过大,恐难驾驭为由,力主撤藩。在撤藩次序上,齐泰觉得先要削整体实力最強的燕王。但黄子澄不赞同,觉得燕王有功无过,为了争得社会舆论支持,应当先找出毛病的亲王着手。建文帝支持黄子澄,遂依次废止五位亲王。
明洪武三十一年(1398年)十二月,以便防备燕王造反,朱允炆派工部侍郎张昺为北平布政使,都指挥使谢贵、张信为北平都指挥使。燕王朱棣看到几个诸侯王依次被削,明白这般下来必无法逃过此劫,遂一边转变态度一边做战事提前准备。为了转变态度,建文年间(1399年),朱棣先装疯卖傻,使惠帝放三子回北平;之后因为下属被朝廷处决,遂装疯卖傻。并在建文元年(1399年)七月举兵抵抗明朝中央。
燕军控制北平后,建文元年(1399年)七月初六,通州主动归顺;七月初八,攻克蓟州,遵化、密云归顺;七月十一,攻克居庸关;七月十六,攻克怀来,擒杀宋忠等;七月十八,永平府(今河北省卢龙县,属秦皇岛市)归顺。七月二十七,为避免大宁部队从松亭关袭击北平,用反间计使松亭关内乱,守将卜万下狱。到此,北平周边所有扫清。燕军军力升至数十万。
朱允炆起用年近古稀的活下来元老长兴侯耿炳文为大将军,驸马都尉李坚为左副将军,都督宁忠为右副将军,率军13万伐燕,数路并举,自称上百万精兵。建文年间(1399年)八月,南军师至河北滹沱河地域。燕王在中秋之夜乘南军饮酒作乐之机,突破雄县,尽克南军的先头部队。进而又于滹沱河南岸惨败南军的精锐部队。耿炳文逃进真定城中,关门坚守。燕军功城三日不能,还师北平市。
建文帝听见耿炳文军败,依据黄子澄的建议,任曹国公李文忠之孙李景隆为大将军,替代耿炳文对燕军战斗。又令辽东江阴侯吴高等带兵围堵永平。朱棣留有小量兵将严守北平,自身亲统精兵援救永平。
建文年间(1399年)十月十九日,燕军在会州(今河北平泉县)整编,分立五军(中、前、左、右、后)。十月二十一日,燕军入松亭关。十一月初五日,燕军渡白河,并击败李景隆的哨探陈晖军队万余人。当日,与李景隆精兵在郑村坝大会战。燕军上下冲击,击破南军七营,李景隆惨败。当晚,李景隆见战事不好,令郑村坝全部部队轻便撤离。数十万人的辎重所有交给了燕军。但李景隆走得急匆匆,沒有通告围堵北平城的南军部队,因此燕军随便击败北平城外的南军,得到其物资供应。李景隆率军撤销德州,郑村坝对决完毕。此役南军丧师十余万人。
建文二年(1400年)四月,李景隆从山东德州,郭英、吴杰等从真定誓师北伐燕军,总体目标是白沟河(北拒马河)。兵力升至六十万,燕军亦出。四月二十日,燕军度过玉马河,驻于苏家桥。四月二十四日,燕军与南军大会战四月二十七日,燕军攻击德州。五月初七,李景隆逃到济南市。初九,燕军进到德州市,得到很多粮食储备。五月十五,燕军攻济南市,李景隆残留十余万兵没什么战斗能力,惨败。李景隆逃跑。燕军遂围济南市。十月,朝廷召李景隆回南京市。
李景隆在几个月的時间内一败再败,建文帝撤免了他的大将军职位,建文帝采黄子澄之谋,遣使和谈而求缓攻,又任职盛庸为平燕将军,代李景隆统兵。盛庸驻防德州市,以遏燕军南进。
建文二年(1400年)十月,朱棣闻报南军北进,决策在南军落脚未稳之时,夺得沧州市,再一次南进。因此一声令下出战辽东,暗地里派人到直沽(今天津市中心)建造大桥。十二月二十五日,燕军抵达东昌。朱棣依然亲手率军冲峰,先冲击南军左翼,没有冲击取得成功;随后又冲击南军核心,盛庸有意开启阵将朱棣诱入,随后冲杀,朱棣被南军重重包围。燕军将军张玉、朱能各自率兵来救,朱棣死站,总算和朱能汇合,逃出战场。可是燕军严重损失:很多燕军被火器所伤,张玉被南军包围着,最终阵亡。南军大将平安亦率军赶到,与盛庸合兵战斗。隔日,燕军再度兵败,遂北还。在击败南军的阻截后,建文三年(1401年)正月十六日,燕军回到北平。张玉阵亡,令朱棣忧伤的食不下咽。
建文三年(1401年)冬,朱棣决策立即率军南进,沿江一决。道衍亦支持不再与盛庸、平安等纠缠不清,直趋京师。十二月初二日,燕师再出。十二月十二,抵达蠡县(约在保定以南50公里)。建文四年(1402年)元月,依次战胜德州市的一支分队和平安的军队,因此燕军南进(线路大概坐落于现京九铁路和京广铁路中间)至馆陶过河(进山东),并直捣黄龙。正月十二日,燕军在馆陶过河;正月十四日,燕军攻占东阿;正月十五日,再攻占东平;正月十七日,陷汶上;元月二十七日,陷沛县(进江苏省);正月三十日,燕军先头部队抵达徐州市。
建文帝见燕军再度派出,建文三年(1401年)十二月令驸马都尉梅殷(建文帝的姑父,顾命大臣)任总兵官,驻守淮安市。建文四年(1402年)正月初一,建文帝将迁到蒙化的朱橚(废周王)招回南京市。命魏国公徐辉祖率军援山东省。
建文四年(1402年)二月初一,南军名将何福、平安、陈晖发兵济宁市,盛庸发兵淮上。朱棣出兵围攻南军饷道后,二月二十一日,燕军战胜徐州市的出战部队,徐州市此后闭城固守。
灵璧之战争结束后,燕军向东南方平行线前行。五月初七下泗州,朱棣谒祖陵。盛庸在黄河设下防御阻拦燕军过河,朱棣在试着取道淮安市、凤阳遇阻后,遣朱能、丘福率兵士数百人绕路上游乘木船过河,五月初九从后才突击盛庸,盛庸败走。燕军遂克盱眙。五月十一日,燕军向扬州方位前行,五月十七日,抵达天长(扬州市大西北50公里)。守扬州市的监察御史王彬本想抵御,但下属叛逆,趁其淋浴时捆缚之。五月十八日,扬州市不战而降。接着高邮归顺。
五月二十二日,朱允炆遣庆成公主与朱棣交涉,表明想要割让土地。朱棣说“此奸臣欲姑缓我,以俟远方之兵耳。”公主哑口无言,遂返。六月初一日,燕军提前准备从浦子口渡江,但碰到了盛庸最终的抵御。燕军战不利,朱棣准备和谈北还。这时朱高煦率兵来援,朱棣十分高兴说“努力罢!世子经常得病啊。”暗示着朱高煦还有机会获得储君宝座,因此朱高煦大受鼓励,率军殊死战,战胜盛庸。接着中央军的一支水军部队降燕,燕军遂于六月初三日自瓜洲渡江,并再度战胜撤到此处的盛庸。六月初六日,燕军至镇江,守将率城认输。
建文四年(1402年)六月十三,燕军抵南京。徐增寿作内应,事败,被朱允炆亲手诛灭于左顺门。守护金川门的朱橞和李景隆望到朱棣到来,打开门迎降,是为金川门之变。燕军攻入南京,天下易主,靖难之役就此结束。