明太祖朱元璋将儿孙分封到各地为王,屏藩皇室。建文帝登基后,为了解决诸王势力逐渐膨胀这一问题,采取了机烈手段削藩,燕王朱棣不愿坐以待毙,发兵讨伐建文帝,这就是历史上著名的“靖难之役”。
朱棣是朱元璋的第四个儿子,从小就习文练武,十一岁被封燕王,二十一岁领兵驻守北平,多次击败蒙古侵扰,实力日渐增强,拥兵十万之多。削藩开始后,朱棣表面装疯卖傻,让朝廷放回三个充当质子的儿子;背地里不断扩充亲军,打造兵甲。公元1399年,朱棣谋反事泄,他立即有杀了侄子建文帝派驻北平的军政官员,打出“清君侧,靖国难”的旗号,起兵扫清北平外围。
朝廷里的开国名将基本被朱元璋杀戮一空,建文帝只能派出老将耿炳文讨伐燕军,但接连败退。建文帝又派名将李文忠之子李景隆率领五十万大军北上。朱棣命世子坚守北平,自己率军先解决了辽东方向的敌人,随即单骑入大宁控制了宁王朱权,收编包括蒙古朵颜三卫在内的宁王部队,实力大增后回师击溃李景隆统率的南军。公元1400年,双方在白沟河大战。李景隆虽然无能,但南军大将平安、瞿能多次埋伏、突袭燕军得手。机战中,朱棣奋勇冲杀,战马多次被箭色中,宝剑也砍断了,但还是渐落下风。朱棣跑到醒目处假装呼喊援兵,李景隆迟疑不敢进攻,终于拖到援军到达。关键时刻,大风刮断南军帅旗,朱棣趁机绕到李景隆阵后放火,南军大败。朱棣乘胜进攻济南,南军盛庸、铁铉死守城池。燕军火炮凶猛,难以抵挡,铁铉命人制作大量朱元璋灵牌挂在城头,朱棣只得下令停止炮击。燕军狂攻三个月无果后只能撤兵。随后的东昌之战中,朱棣再度败在盛庸、铁铉之手,麾下大将张玉也战死此役。战场上朱棣多次遇险,但因为朱允炆“毋使朕有杀叔父名”的旨意,南军不敢伤害他,任他来去自如。朱棣也借此经常单骑殿后,掩护燕军撤退,南军无可奈何。
朱棣并未灰心,于公元1401年再次出兵南下,接连取得夹河、藳城等战役的胜利,但因为兵力不足,无法扩大优势。他认为再和南军纠缠下去不是办法,决定直接南下攻取南京。燕军经德州、东阿、东平、沛县,一路连战连捷。在安徽灵璧,南军合兵大胜燕军,加之暑热难耐,燕军陷入困境,众将想要北返。大将朱能慷慨陈词“汉高祖十战九不胜,卒有天下”,坚定了朱棣的决心。由于粮道不断被燕军袭扰,南军决定撤退到淮河取得给养,撤退号令定为三声炮响。碰巧燕军进攻灵壁的信号也是三声炮响。南军听见炮响以为是撤退命令,纷纷逃走,燕军趁势全歼南军。
燕军攻破扬州等地后,建文帝求和,朱棣不许。一个月后,南军长江水师投降,燕军渡江攻破南京,皇宫起火,建文帝下落不明。“靖难之役”结束后,朱棣登基为帝,史称明成祖。其后,将齐泰、黄子澄、方孝孺、铁铉等众多旧臣灭族,并继续削藩,强化集权统治。