靖难之役

背景

明朝建立后，明太祖朱元璋为了巩固自己及子孙的统治，便大封宗室二十五人为藩王，驻守全国各地。这些藩王虽然没有封地的管治权，但拥有护卫军队，少者有三千人，多者至一万九千人，驻守北方边境的九位边王（辽、宁、燕、谷、代、晋、秦、庆、肃）军权更大，如宁王“带甲八万，革车六千”。
朱元璋的太子朱标不幸早逝，太孙朱允炆是诸王之侄，感到难以制约各叔父们的势力。加上诸王拥有军权，对他构成潜在威胁，便有削藩之意。洪武三十一年（公元1398年）闰五月初十，明太祖朱元璋去世，朱允炆作为太孙继位，是为惠帝（建文帝）。惠帝发布太祖遗诏，令诸王留于封地，不要赴都；甚至燕王朱棣已经前来奔丧，却被惠帝命令返回，导致诸王不满。惠帝于是与齐泰、黄子澄商量开始削藩。

建文帝削藩

朱允炆于洪武三十一年闰五月继位后，立即开始削藩。在削藩顺序上，齐泰认为应先削实力最强的燕王，时户部侍郎卓敬亦上疏请改燕王封地于南昌；但黄子澄反对，认为燕王有功无过，为了争取舆论支持，应该先找有问题的亲王下手。惠帝支持黄子澄，遂先后废除五位亲王。
洪武三十一年七月，削周王。因周王是燕王同母兄弟，而朱允炆怕他与燕王呵成一气，于是决定先废周王。时周王十岁的次子朱有爋告发父亲谋反，于是派曹国公李景隆以备边之名经过开封，将周王全家押回南京，废为庶人，迁往云南蒙化（今云南巍山）。
建文元年（1399年）四月，削齐、湘、代三位亲王，废为庶人。湘王不堪受辱，为保名节举家自焚；齐王被软禁在南京；代王被软禁在封地大同。两个月后，削岷王，废为庶人，徙漳州。
由于惠帝削藩激化矛盾，藩镇与中央开始决裂，此时实力最强的燕王就成了真正的诸王之首。而皇帝与朱棣之间的博弈亦逐渐走向明处，变得更加激烈。

朱棣起兵，夺取幽燕

洪武三十一年十二月，为了提防燕王谋反，朱允炆派工部侍郎张昺为北平布政使，都指挥使谢贵、张信为北平都指挥使。随后又命都督宋忠屯兵驻开平，并调走北平原属燕王管辖的军队。
燕王朱棣见到几位亲王先后被削藩，或贬或死，明白如此下去必定无法逃过此劫，遂一边争取时间一边做战争准备。为了争取时间，建文元年，朱棣先装病，使惠帝放三子回北平；之后由于属下被朝廷处死，遂借机装作精神失常。但由于王府长史葛诚叛变，密奏朝廷“燕王无病”，朱棣装疯被发觉。
时燕王遣使入京师金陵奏事，使者被齐泰等审讯，被迫供出燕王的异状，于是朝廷下密旨，令张昺、谢贵逮捕燕王幕府的官属，张信逮捕燕王本人。但张信与其母亲讨论之后，将此事告知朱棣。于是朱棣和僧人姚道衍等谋划举兵，令张玉、朱能将八百勇士带入府中潜伏，以待变故。
张昺、谢贵得到朱允炆密诏后，七月初四带兵包围了燕王府。朱棣假意将官属全部捆缚，请二人进府查验。二人进府后，朱棣派出府内死士将其擒获，并连同府内叛变的葛诚、卢振一同处决。当日夜里，朱棣攻下北平九门，遂控制北平城。
燕王朱棣起兵造反，援引《皇明祖训》，号称清君侧，指国君身边的齐泰和黄子澄为奸臣（谋害皇室亲族），需要铲除，称自己的举动是，为国“靖难”（意为“平定国难”），并上书于惠帝朱允炆。
燕军控制北平后，七月初六，通州主动归附；七月初八，攻破蓟州，遵化、密云归附；七月十一，攻破居庸关；七月十六，攻破怀来，擒杀宋忠等；七月十八，永平府（今河北卢龙县，属秦皇岛市）归附。七月二十七，为防止大宁军队从松亭关偷袭北平，用反间计使松亭关内讧，守将卜万下狱。至此，北平周围全部扫清。燕军兵力增至数万。
燕军攻破怀来后，由于领地相距太近，七月二十四日，谷王朱橞逃离封地宣府（今属张家口，距北京约150公里，距怀来约60公里），奔金陵。八月，齐泰等顾虑辽王、宁王帮助燕王，建议召还京师；辽王从海路返京，而宁王不从，遂削宁王护卫。
宋忠失败后，部将陈质退守大同。代王本欲起兵呼应朱棣，被陈质所控制，未果。

击败耿炳文

七月，朱棣反书至都，朱允炆祭告太庙，削朱棣宗室属籍，废为庶人。决定起兵讨燕。在真定（今河北正定）设置平燕布政司。
元年八月，帝乃祭告天地宗庙社稷及江淮旗纛之神，书谕诸王削燕属籍，命礼部侍中黄观草诏。诏曰：朕奉先皇帝遗诏，纂承大统，宵衣旰食，思图善政，以安兆民。岂意国家不幸。骨肉之亲屡谋僭逆。去年周庶人橚，潜为不轨，辞连燕、齐、湘三王，皆与同谋。朕以亲亲之故，不忍暴扬其恶，止治橚罪，余置不问。今年齐王榑谋逆事觉，推问犯者，又言与燕王棣、湘王柏同谋大逆，柏自知罪恶难逃，自焚死，榑已废为庶人。朕以燕王棣于亲最近，未忍穷治其事。今棣乃忘祖逆天，称兵构逆，意欲犯阙，危宗社。悖逆如此，孰不骇闻？昔先皇帝时，棣包藏祸心，为日已久。印造伪钞，阴结人心，朝命穷极，藏匿罪人，先帝震怒，遂以成疾。至于升遐，海内闻知，莫不痛忿。今不悔过，又造滔天之恶，虽欲赦之，而获罪宗社、天地不容。已告太庙废为庶人，遣长兴侯耿炳文等率兵三十万往讨其罪。咨尔中外臣民军士，各宜怀忠守义，奉职平燕，与国同心，永安至治。布告天下，咸使闻知。 
由于朱元璋晚年诛杀了不少良将，导致惠帝手下缺乏将才可用，朝廷只得任命65岁老将耿炳文率兵北上讨伐，号称三十万人，实际先行率领十三万人出兵。在临行时，朱允炆亲自告诫：“毋使朕有杀叔父名。”
耿炳文率军在八月十三日到达真定，并分兵于河间、鄚州（河北任丘北约30里）、雄县，为犄角之势。在经过观察后，八月十五日，燕军趁中秋夜敌军不备，偷袭雄县；成功后又利用伏击击败了鄚州的援兵，遂攻克鄚州，收编剩余的部队。
耿炳文部将张保来降，告知朱棣耿炳文的部队分驻滹沱河两岸，于是朱棣让他回去告诉耿炳文“雄县、鄚州大败，燕兵将至”，以打击其士气，并使耿炳文合兵一处，便于一举击溃。耿炳文果然将南岸的兵调过河。
八月二十四日，燕军到达无极县。从樵夫和中央军被俘士兵处得知敌情，于是燕军发动决战。
二十五日，燕军趁耿炳文送使臣出城时偷袭中央军，炳文逃回城中后，怒而迎战。在燕军主力与耿炳文军相持时，朱棣亲自率军袭击其侧翼，耿炳文大败溃逃；朱能带三十余骑冲入中央军阵中，所向披靡，中央军投降三千多人。中央军狼狈逃回城中，城池差点失守。部将李坚、甯忠、顾成等被俘；士兵被杀、被俘数万人（后放还）。
耿炳文率残部不到十万人在真定坚守不出，燕军攻城三天不克。八月二十九日，燕军返回北平。顾成降燕之后，留在北平协助燕世子朱高炽守城。

大胜李景隆

耿炳文战败的消息传到南京，朱允炆开始担忧战事，考虑换将。黄子澄说曹国公李景隆是名将李文忠之子，建议他接任；齐泰反对，但惠帝不听。八月三十日，拜李景隆为大将军，誓师出征，并召回耿炳文。李景隆以德州为大本营，调集各路兵马包括耿炳文败兵，增兵至五十万人，九月十一日进至河间。
朱棣听说朝廷以五十万倾国之兵交付李景隆，大喜过望，说赵括之失必然重演，燕军必胜。并提出李景隆之五败：
一、为将政令不脩，纪律不整，上下异心，死生离志。
二、今北地早寒，南卒裘褐不足，披冒霜雪，手足皲瘃，甚者堕指，又士无赢粮，马无宿槁。
三、不量险易，深入趋利。
四、贪而不治，智信不足，气盈而愎，仁勇俱无，威令不行，三军易挠。
五、部曲喧哗，金鼓无节，好谀喜佞，专任小人。

守北平，袭大宁

九月初一江阴侯吴高率辽东兵攻打永平郡，故朱棣趁李景隆踌躇不决之际，九月十九日前往救援。九月廿五，击败吴高，决定趁势偷袭大宁（今内蒙古宁城）以获得其精锐部队；另一方面利而诱之，将中央军引至“空城”北平下。九月廿八，出师。传信给燕世子朱高炽，令坚守。
十月初六，燕军经小路到达大宁城下。朱棣单骑入城（一说击败守将房宽后入城），见宁王朱权，哭诉自己无路可走，向朱权求救，希望能向朝廷上书，谢罪免死。朱权相信并收留了他。在居大宁期间，朱棣令手下吏士入城结交并贿赂大宁的军官等。十月十三，朱棣提出告辞，朱权在郊外送行；但朱权来到郊外后，伏兵尽起，大宁军纷纷叛变，归附朱棣。于是朱权与王妃、世子等一同随朱棣前往北平，而大宁的全部军队（包括其骑兵精锐朵颜三卫）都被朱棣收编。大宁成为空城。朱棣实力大增。
听说燕王朱棣率精锐征大宁，李景隆引军攻北平。中央军在郑村坝（今大兴以东二十里）扎营，筑垒同攻北平九门。燕王世子朱高炽坚守。朱高炽遣人夜间偷袭中央军大营，获得了一定的喘息时间；中央军攻城急时，城中妇女也上城头向下投掷瓦石。
中央军唯一一次获胜的机会是都督瞿能攻张掖门（一说彰义门，据《方舆纪要》，彰义门即西直门；存疑），几乎要攻下时，因被李景隆所忌，只得停止。功败垂成。农历十月北平甚寒冷，于是燕军守城部队夜里汲水浇于城墙上，次日城墙结冰，无法攀登。中央军因天寒地冻，战斗力骤降，攻势自此受阻。

郑村坝之战

十月十九，燕军在会州整编，分立五军（中前左右后）。十月廿一，入松亭关。
十一月初五，渡白河（时已结冰，渡河处在今北京顺义区东），并打败李景隆的哨探陈晖部队万余人。当天，与李景隆大军在郑村坝会战。燕军左右冲击，连破其七营，李景隆大败。当夜，李景隆见战事不利，令郑村坝所有军队轻装撤退。数十万人的辎重全部留给了燕军。但李景隆走得匆忙，没有通知围攻北平城的军队，于是燕军轻易击溃城下的敌军，获得其物资。李景隆率军撤回德州，郑村坝之战结束。此战中央军丧师十余万。
十一月初九，朱棣回到北平城，因为之前（七月）上书没有回信，再次上书朝廷，陈述齐、黄构陷宗藩。惠帝不应。十二月，朱棣用反间计令辽东守将吴高被削爵贬黜，消除东北方向的后顾之忧。
由于李景隆准备等来年开春再北上攻燕，朱棣决定攻打大同，以使中央军疲于奔命。十二月十九日，出师攻大同。十二月廿四，抵达广昌，守将杨宗投降。建文二年（1400年）正月初一，燕军抵达蔚州，守将王忠、李远投降。二月初二，燕军攻大同。由于大同是代王封地且军事地位极重要，李景隆不得不救援。待李景隆走出紫荆关后，燕军从居庸关返回北平。中央军在冰天雪地中白跑一趟，兵力、装备大量损失，士气受到重创。
二月廿八，李景隆给朱棣写信，请求暂时停战。燕王回信索要齐泰、黄子澄等。一说李景隆自此有贰心。
除了使中央军白跑了一个月外，燕军在本次伐大同时意外遇到了从蒙古来降的军队，收编之。此外，保定府于建文二年二月降燕。

白沟河之战

建文二年四月，李景隆从德州，郭英、吴杰等从真定誓师北伐，目标是白沟河（北拒马河）。兵力增至六十万。燕军亦出。四月二十日，燕军渡过玉马河，驻于苏家桥。四月廿四，与中央军会战（战场在河北省高碑店市新城县南三十里）。
中央军（李景隆部）先锋平安之前曾跟随朱棣出塞，熟悉朱棣战法，设伏兵；燕军至，平安伏兵起，挺矛冲锋；瞿能父子也一同合击，燕军战斗失利。时中央军（郭英部）也来到战场，郭英在燕军撤退的必经之路上埋地雷，燕军撤退时损失惨重。朱棣亲自率军殿后，但夜间迷失了道路。朱棣下马趴在地上辨别河流的方向，才分清方向，回到大营。令军士提前用餐，准备次日决战。
次日（四月廿五），再次合战。瞿能、平安绕至燕军后方，攻其后军，得手。朱棣见状不好，亲冒矢石，令丘福冲击李景隆中军，不成功；朱棣率军攻打，双方混战，飞矢如雨。朱棣先后换了三匹马，射光了三筒箭，宝剑也砍断，差点被平安、瞿能所伤。无奈之下，朱棣来到河堤上，举起马鞭，假装招呼援兵，李景隆见状果然生疑，攻势减缓；朱高煦此时也来援救，战事暂时缓和。
不久，瞿能再次引众搏战，大呼“灭燕”，形势再次对燕军不利。就在战事危急时，一股旋风刮起，刮断了李景隆的帅旗，中央军顿时大乱。朱棣抓住机会，绕到李景隆后方放火。中央军大败，瞿能父子被朱高煦阵斩。郭英等向西撤退，李景隆向南撤退，辎重全部扔下，投降十万余人。李景隆撤回德州。
四月廿七，燕军进攻德州。五月初七，李景隆逃往济南。初九，燕军进入德州，获得大量粮食储备。五月十五，燕军攻济南，李景隆残存十余万兵毫无战斗力，大败。李景隆逃走。燕军遂围济南。
十月，朝廷召李景隆回南京。李景隆把六十万大军丢得一干二净，黄子澄、练子宁、叶希贤等上书，请求立斩之，朱允炆不听。对于推荐了李景隆，黄子澄感到十分后悔。

相持阶段

郑村坝之战和白沟河之战，李景隆将朝廷的老本赔得一塌糊涂，攻守形势逆转。

济南之战

李景隆败退后，燕军围济南。右参政铁铉、盛庸坚守。朱棣射信入城招降，未果。
五月十七，燕军掘开河堤，放水灌城。铁铉见势不妙，决定派千人诈降，诱朱棣进城。次日，朱棣前往济南，走到城门口时，城门预设的铁板落下，但略快了些，只打中了其所乘马的头。朱棣大惊，换马跑回。由于事出意外，断其后路等工作没能成功。朱棣逃回，大怒，围城攻打三个月。
由于济南的军事地位极重要，若取得济南，进可南下攻打，退可画疆自守，故燕军乘新胜之锐气，志在必得。不料攻城不利，朱棣愤怒之下决定使用大炮攻城，城中不支。铁铉见状，在一些木牌上写了“高皇帝神牌”几个字并挂在城头，燕军只得停止炮击。
六月，惠帝见济南危急，遣使求和。朱棣不听。七月，平安进军河间，扰乱燕军粮道。朱棣进退不得，八月十六，撤兵回北平。盛庸、铁铉追击，大败燕军，收复德州。济南之战结束。
九月初十，朱允炆升铁铉为山东布政使，参赞军务，不久后升兵部尚书；封盛庸为历城侯，平燕将军，撤换李景隆。都督陈晖、平安为副职。中央军重新进到德州、定州（今保定与石家庄之间）、沧州（今河北沧州）。

东昌之战

建文二年十月，朱棣闻报中央军北上，决定在敌军落脚未稳时，袭取沧州，再度南下。于是明令征辽东，暗中派人在直沽（今天津市中心）修建浮桥。十月廿五，从通州折向南，昼夜兼行，十月廿七到达沧州，守将徐凯尚在筑城中；燕军仅用两天就攻下沧州，徐凯等投降。燕军自长芦渡河，十一月初四到达德州。朱棣招降盛庸未果，遂南下；盛庸袭击燕军后军，失败。十一月，燕军到达临清；朱棣决定扰乱中央军的粮道，遣轻骑至大名，焚其粮船。燕军从馆陶渡河（卫运河，京杭运河的一部分；当时黄河夺淮入海），先后到达东阿、东平，威胁南方，迫使盛庸南下。盛庸将计就计，决定在东昌（今山东聊城）决战，并在阵中摆了大量火枪和毒弩。
十二月廿五，燕军至东昌。朱棣仍然亲自率军冲锋，先冲击其左翼，不动；然后又冲击其中坚，盛庸开阵将朱棣诱入，然后合围。朱棣被重重包围，燕军张玉、朱能（一说还有朱高煦）分别引兵来救，朱棣死战，终于和朱能会合，逃离战场。大量燕军被火器所伤，张玉被中央军包围，战死。平安亦率兵赶来，与盛庸合兵作战。次日，燕军再次战败，遂北还。在击退中央军的阻截后，建文三年正月十六，燕军返回北平。张玉战死，朱棣十分悲伤。
东昌之战，朱棣多次濒临险境。但是由于朱允炆有“毋使朕有杀叔父名”旨意，中央军将士惧怕战后反攻倒算，既不敢伤害朱棣，又难以活捉，只得放任自由；朱棣也恃此特权，单骑殿后，中央军无可奈何。
东昌之战是靖难以来中央军的第一场大捷。惠帝朱允炆十分高兴，建文三年（1401年）正月恢复了齐泰、黄子澄的官职（建文元年十一月两人被罢免，但仍作为智囊留用；至是恢复齐的兵部尚书和黄的太常寺卿职务），并以东昌大捷告太庙。盛庸军势大振，燕军经此败，以后再南下，皆由徐沛，不再走山东。

夹河-藳城之战

朱棣以东昌之败为耻，与姚道衍商议。道衍强烈支持再次出兵。于是于建文三年二月初九，祭阵亡将士，朱棣脱下袍子烧掉，激励军士；二月十六，再次出师。时盛庸驻兵二十万于德州，吴杰、平安在真定。朱棣决定趁其两军分隔，先破盛庸。三月二十日，燕军探知盛庸在夹河（今河北省衡水市武邑县附近，漳河支流）驻扎，于是驻扎在距对方四十里的地方。
三月廿二，燕军进兵夹河。盛庸仍结下坚阵，备大量火枪强弩；朱棣利用建文的禁杀之旨，亲自率几个轻骑兵掠过敌阵侦查。盛庸不敢开枪，只得派出自己的骑兵追赶，不了了之。侦查后，朱棣率领一万骑兵和五千步兵攻击盛庸军左翼，不能入。此时燕将谭渊望见已经开战，于是主动出兵攻打。盛庸部将庄得死战，会合盛庸军，斩杀谭渊。朱棣、朱能等则趁南军调动产生的混乱，趁暮色向南军后方猛攻，斩杀庄得。盛庸稳住了阵脚，天色已晚，双方罢兵。此战杀伤相当，但燕军损失了大将谭渊。
当夜，朱棣率领十余人在盛庸营地附近露宿；次日（三月廿三）清晨，发现被中央军包围。朱棣再次利用禁杀之旨，引马鸣角，穿过敌军，扬长而去。中央军愕然，不敢射箭。
朱棣回到营中，鼓励众将“两军相当，将勇者胜”，于是燕军在东北方向，盛庸军在西南方向，再次会战。燕军左右冲击，盛庸坚守，双方互有胜负。战斗打了三四个时辰后，突然刮起了强烈的东北风，尘埃蔽天。中央军顶着风沙，根本没法作战；燕军则乘风大呼，纵左右翼横击之，盛庸大败，损失了数万人后，退回德州。吴杰、平安引兵准备会合盛庸，闻庸已败，退回真定。夹河之战结束。
夹河之战重新确立了燕军的优势。闰三月初四，朱允炆因夹河之败，再次罢免齐泰、黄子澄，谪出京城，暗中令其募兵。
击败盛庸后，朱棣进军真定。考虑到攻城较困难，决定诱敌出战。于是下令军中四出取粮，而用间谍向吴杰等透露此事。吴杰等见状，决定袭击之。闰三月初九，两军会于藳城，遂交战。中央军列方阵，朱棣则率精锐攻其东北角以破阵。燕将薛禄由于马失足被擒，但夺敌刀斩数人后，夺马逃走。此战大量燕军被中央军的火枪和弓弩所伤，朱棣的帅旗被射得像刺猬一样；但是，由于朱允炆的禁杀之旨，朱棣本人反而没事。
次日，复战。在战斗中突然又刮起了猛烈的大风，中央军不能支，大败而去。燕军四面围攻，斩首六万余级。吴杰、平安等逃回真定，坚守不出。朱棣将射成刺猬的军旗送回北平，令世子朱高炽妥善保存，以警示后人。
从白沟河、夹河到藳城，燕军三次得大风相助而胜，朱棣认为这是天命所在，非人力所能为。

夹河-藳城战后的间接作战

夹藳之战再次使南军损失惨重，正面战场战事稍缓和。中央军改为通过谈判、反间、袭击后方等方式间接作战。
击败平安后，燕军南下，先后经过顺德、广平、大名，并驻扎于大名。诸郡县望风而降。
朱棣听说齐黄被贬，上书和谈，表示“奸臣窜逐而其计实行，不敢撤兵”。朱允炆得书，与方孝孺讨论，方孝孺表示可以借此机会遣使回报，拖延时间，并懈怠其军心；同时令辽东等军队攻其后方，以备夹攻。于是（四月）惠帝令大理寺少卿薛嵓去见朱棣，传诏并秘密在军中散布相关消息。薛嵓见朱棣，说“朝廷言殿下旦释甲，暮即旋师。”朱棣表示这连三尺小儿也骗不过。薛嵓无言以对。五月初一，盛庸、吴杰、平安等分兵骚扰燕军饷道。朱棣遣使者进京表示盛庸等不肯罢兵，必有主使。惠帝听从方孝孺的意见，将其下狱（一说诛杀），和谈破裂。
朱棣见和谈破裂，决定袭击中央军饷道，以使德州南军陷入困境，遂令都指挥李远率兵六千，换穿中央军甲胄，从济宁南下；六月十五，瞒过中央军到达沛县，成功焚烧大量中央军粮船，河中鱼鳖尽死。中央军损失粮食数百万石，京师大震，德州陷入窘境。
七月，燕军进攻彰德，林县投降。七月初十，平安自真定趁虚攻北平，扰其耕牧。朱高炽固守。朱棣分兵回援；（九月十八）平安与战不利，退回真定。
由于河北战事不利，方孝孺想出了反间计，利用朱高炽（长子）和朱高煦（次子）的矛盾，先写一封信给守北平的高炽，令其归顺朝廷，许以燕王之位；然后派人告诉朱棣和高煦（随军）世子密通朝廷，以使燕军北还。但朱高炽得到信后，根本没有拆开，将朝廷使者连人带信一起送往朱棣处。反间计失败。
七月十五，盛庸令大同守将房昭入紫荆关威胁保定，据易州西水寨以窥北平。朱棣见状，只得回兵救援。朱棣分兵守保定，并包围房昭的山寨。十月初二，燕军与真定援兵和房昭军决战，朱棣令勇士悄悄登山，在敌后大张旗帜。中央军山寨见状大乱，与真定援兵一齐崩溃。房昭退回大同。
十月廿四，燕军回到北平。之后又击败了袭永平的辽东敌军。
至此，燕军靖难已有两年多。虽然屡战屡胜，但因兵力不足，无法巩固并扩张胜利，往往放弃新取之地；仅能据有北平、保定、永平三个郡。

燕军进攻阶段

建文三年冬，朱棣决定直接率兵南下，临江一决。道衍亦支持不再与盛庸、平安等纠缠，直趋京师。

长驱南下

十二月初二，燕师复出。十二月十二，到达蠡县（约在保定以南50公里）。建文四年（1402年）正月，先后击败德州的一支分队和平安的部队，于是燕军南下（路线大致位于现京九铁路和京广铁路之间）至馆陶渡河（进山东），并长驱直入。正月十二，馆陶渡河；正月十四，陷东阿；正月十五，陷东平；正月十七，陷汶上；正月廿七，陷沛县（进江苏）；正月三十，到达徐州。
惠帝见燕军再次出动，三年十二月令驸马都尉梅殷（惠帝的姑父，顾命大臣）任总兵官，镇淮安。建文四年正月初一，将迁往蒙化的朱橚（废周王）召回南京。命魏国公徐辉祖率兵援山东。
二月初一，何福、平安、陈晖进兵济宁，盛庸进兵淮上。朱棣派兵袭击中央军饷道后，二月廿一，击败徐州的出战军队，徐州自此闭城死守。

灵壁之战

徐州坚守不出，朱棣遂不再理会，继续南下。三月初一，燕军进逼安徽宿州。三月初九，抵达涡河（今安徽蚌埠市怀远县以北）。平安见到燕军一路南下，带兵来追；但三月十四日在淝河中了朱棣所设的伏兵，只得退回宿州。三月廿三，朱棣遣将断徐州饷道，铁铉等率兵围攻，互有胜负。四月十四，燕军进达睢水之小河，搭浮桥。次日，平安、何福领军夺桥，双方隔河僵持。数日后，中央军粮尽，朱棣决定偷袭。半夜，渡河绕至敌后；但徐辉祖援兵正好赶到，四月廿二，双方战于齐眉山（灵壁县西南三十里），中央军大胜，斩燕将李斌。
中央军再次获得胜利，再加上暑热，燕军陷入窘境。四月廿三，燕军众将要求北返，择地休整，朱棣不同意，说“欲渡河者左，不欲者右。”大部分人站于左侧，朱棣怒。朱能这时强力支持朱棣，表示“汉高祖十战九不胜，卒有天下”，坚定了燕军坚持的决心。
这时，朝廷讹传燕军已兵败，京师不可无良将，遂召回徐辉祖。四月廿五，考虑到在河边不易防守，何福移营，与平安在灵壁（一作灵璧）深沟高垒作长远之计。由于粮道被燕军阻碍，平安亲自率兵六万护卫粮草。四月廿七，朱棣率精锐袭击平安，将其一分为二；何福全军出动救援，朱高煦也率伏兵出现，何福败走。
中央军缺粮，何福与平安决定次日（廿九）突围而出，在淮河取得给养，号令为三声炮响；次日，燕军攻打灵壁墙垒，进攻信号正巧也是三声炮响。于是中央军以为是己方号炮，纷纷夺路而逃；燕军趁势进攻，中央军全军覆没。灵壁之战就此意外结束。此战燕军生擒了陈晖、平安、马溥、徐真、孙成等三十七员敌将，四名内官（宦官），一百五十员朝廷大臣，获马二万余匹，降者不计其数。只有何福单骑逃走。
灵壁之战彻底击溃了中央军主力，此后燕军在长江以北再也没有遇到像样的抵抗。一千六百年前决定楚汉之争胜败的垓下之战就发生在灵壁附近，可谓历史的巧合。
按照齐黄的策划，曾令辽东派兵南下欲与铁铉会师济南，但五月初一在直沽被燕军击溃。

渡江进京

灵璧之战后，燕军向东南方向直线前进。五月初七下泗州，朱棣谒祖陵。盛庸在淮河设下防线阻碍燕军渡河，朱棣在尝试取道淮安、凤阳受阻后，遣朱能、丘福率士兵数百人绕道上游乘渔船渡河，五月初九从后方突袭盛庸，盛庸败走。燕军遂克盱眙。
五月十一，燕军向扬州方向前进，五月十七到达天长（扬州西北50公里）。守扬州的监察御史王彬本想抵抗，但属下反叛，趁其沐浴时绑缚之。五月十八，扬州不战而降。随后高邮归降。
扬州失陷，金陵震动。朱允炆惊慌不已，与方孝孺商议后，先后定下如下几个救急方法：下罪己诏；号召天下勤王；派练子宁、黄观、王叔英等外出募兵；召回被贬黜的齐泰、黄子澄；遣人许以割地求和，拖延时间。方孝孺的几个办法中，只有两个起到了效果：齐黄被召回（外出募兵，未进京），苏州、宁波、徽州等地知府先后率兵进京师。
五月廿二，朱允炆遣庆成郡主（朱元璋的侄女、朱棣的堂姐）与朱棣谈判，表示愿意割地。朱棣说“此奸臣欲姑缓我，以俟远方之兵耳。”郡主无言以对，遂返。
六月初一，燕军准备从浦子口渡江，但遇到了盛庸最后的抵抗。燕军战不利，朱棣打算议和北还。此时朱高煦引兵来援，朱棣非常高兴，说“努力罢！世子常常生病啊。”暗示朱高煦有机会取得储君宝座，于是朱高煦大受鼓舞，率众殊死战，击败盛庸。随后中央军的一支水军部队降燕，燕军遂于六月初三自瓜洲渡江，并再次击败退守此地的盛庸。六月初六，燕军至镇江，守将率城投降。
六月初八，燕军驻扎于龙潭（距京师金陵东约30公里），朝廷大震。朱允炆徘徊殿间，召方孝孺问计。有人提议逃往内地以图兴复，方孝孺表示城中尚有二十万兵，应坚守待援；即使真战败，国君为社稷而死，是理所应当的。可以再派大臣、在京诸王前往谈判以拖延时间。于是六月初九，派李景隆、茹瑺等见朱棣，再次谈判；朱棣表示割地无名，只要奸臣。六月初十，遣谷王朱橞（建文元年逃回京城）、安王朱楹等第三次前往谈判，无果。
六月十二，外出募兵的大臣们仍未返回，朱允炆只得派在京诸王和武臣们守卫各门。时左都督徐增寿（徐达子，辉祖弟）谋内应，被一群文官围殴。次日（1402年7月13日），燕军抵金陵。徐增寿作内应，事败，被朱允炆亲自诛杀于左顺门。守卫金川门（位于南京城西北面）的朱橞和李景隆望见朱棣麾盖，开门迎降，是为金川门之变。
燕军攻入金陵，江山易主。靖难之役结束。建文四年（洪武三十五年）六月十七日，朱棣登基即皇帝位，是为明太宗（后改成祖）。

惠帝失踪

燕军进南京，朱允炆见事不可为，遂在皇宫放火。马皇后死于大火，朱允炆本人及太子朱文奎不知所终；此后其下落成为谜团。
朱棣入城，派人找出马皇后的尸体，指认其为朱允炆，并执其手哭“傻小子，何苦如此”，随后六月廿日以天子礼葬之，造成惠帝已死的假象。

朱棣称帝

南京陷落后，朱棣入城。翰林院编修杨荣迎于马首，说：“殿下先谒陵乎？先即位乎？”点醒朱棣。次日（建文四年六月十四）起，诸王及文武群臣多次上表劝进，朱棣不允。数日后（六月十七），朱棣谒孝陵，并于当日即皇帝位是为明太宗（后改为成祖）。重建奉先殿（旧殿被朱允炆所焚），刻玉玺。同年十一月十三日，封王妃徐氏为皇后。
朱棣不承认建文年号，七月初一（一说六月十八），将建文元、二、三、四年改为洪武三十二至三十五年，次年改为永乐元年。凡建文年间贬斥的官员，一律恢复职务（如靖难初期因离间被贬的江阴侯吴高被再次起用，守大同）；建文年间的各项改革一律取消；建文年间制定的各项法律规定，凡与太祖相悖的，一律废除。但一些有利于民生的规定也被废除，如建文二年下令减轻洪武年间浙西一带的极重的田赋，至此又变重。

明朝宗室的待遇变化

朱棣称帝后，六月十八，恢复了周王朱橚、齐王朱榑的爵位。随后恢复代王朱桂、岷王朱楩的爵位。永乐元年正月，令周、齐、代、岷四王归藩。
六月廿六，朱棣取消朱标的明兴宗庙号，重新称懿文太子，吕太后复称懿文太子妃；七月十二，将朱允炆的三个弟弟由亲王降为郡王；十一月以不能匡正建文帝为由将朱允熥、朱允熞废为庶人软禁凤阳，朱允熙不久暴卒。朱允炆次子朱文圭亦被废为“建庶人”，软禁凤阳广安宫，55年后才和朱允熥后人一同被明英宗释放。
朱棣因为反对建文帝削藩而起兵，为了争取诸王拥戴，即位后立即恢复了被削的藩王，并加以赏赐，甚至改变祖制给予宗室更高的品级。如按照洪武年间规定，镇国将军（郡王之子）为三品，辅国将军四品，奉国将军五品，镇国中尉六品，辅国中尉七品，奉国中尉八品。而成祖“遂加镇国将军从一品，辅国将军从二品，奉国将军从三品，镇国中尉从四品，辅国中尉从五品，奉国中尉从六品”。
然而由于朱棣自己是武装夺权的，为了保证中央政权稳固，他即位后先将诸边塞王改封于内地，然后逐渐解除诸王的兵权：永乐元年削代王护卫及官属；永乐四年削齐王护卫及官属，不久废为庶人；永乐六年削岷王护卫及官属；永乐十年削辽王护卫；永乐十五年废谷王为庶人；永乐十九年周王见势不妙，主动献还护卫。洪武朝带兵的十三位亲王，永乐朝削去了六个护卫。与此同时，大封靖难功臣，将大批有经验的武臣保留下来，加强中央政权，从根本上改变了中央和诸藩的军事力量对比。
虽然朱棣实现了朱允炆当年的目的，但只解决了眼前的问题，并没有改变祖制；其子汉王朱高煦和赵王朱高燧仍然设立了三护卫。宣德元年，朱高煦叛乱，再次证明亲王典兵不是办法。亲征平定叛乱后，明宣宗利用其威望，迫使绝大部分藩王交出了护卫，并从各个方面对宗室加以控制。此后，宗室与中央的矛盾逐渐由军事上对政权的威胁转变为大量增加的俸禄对中央财政的压力。

迁都北京和割让大宁

由于洪武年间，北方的防务多由几位边王（如朱棣、朱权）负责，而靖难后朱棣徙诸边王于内地，导致华北防务空虚；又由于有唐朝之守外虚内、宋朝之守内虚外的教训，故在军事上，定都金陵（南京）、遥控将领守卫边界的风险很大；“天子守国门”则可以解决这一问题。另一方面，由于南京的建文帝势力影响较大（很多建文遗臣始终不顺服朱棣统治），出于在政治上考虑，作为朱棣大本营的北平更加适合作为京师，再加上蒙古的军事威胁，故考虑各种因素后，朱棣决定迁都北京。
永乐元年（1403年）冬二月，朱棣改北平为北京，名顺天府；随后迁徙各地富民于北京。称北京为行在。永乐年间，迁都北京的准备一直在进行，如建北京城、建宫殿、疏通漕运等；直到永乐十八年（1420年），北京皇宫和北京城建成，遂下令迁都，以南京作为留都。自此，除1928年至1949年期间国民政府定都南京外，北京一直是中国的首都，政治中心从此北移。
朱棣在靖难初始时曾将大宁的全部军力（包括朵颜三卫）纳入麾下，朵颜三卫在后续作战中起到了重要作用；故朱棣称帝后，将宁王封于南昌，永乐元年三月把大宁封赏给朵颜三卫作酬劳。
大宁位于今日辽、蒙、冀三省交界处，辽东-蓟州-宣府弓形的中心，军事地位相当重要；洪武十三年（1380年）收复，并建立卫所，至此废除。大宁可以作为辽东、蓟州、宣府等地的防卫前哨，并影响其防卫效果；失去大宁，从关内到辽东就只能走山海关过锦州。此后（尤其是土木之变后），蓟辽的战事不断。尤其是正统土木之变与嘉靖庚戌之变，蒙古人都从大宁入寇。割大宁之事，多为后人所诟病。

设立内阁、特务统治、重用宦官

为了更有效率地处理国务，洪武三十五年（1402年）八月初一，朱棣令解缙、黄淮入直文渊阁，预机务。随后扩充内阁至七人。从此内阁开始在明朝政治中发挥越来越重要的作用，甚至清朝仍沿用此制度。
另一方面，由于朱棣是造反称帝的，对大臣有所猜忌，故恢复了洪武年间废除的锦衣卫，重新开始实施明朝的特务统治；指挥使纪纲成为永乐朝一大权奸。随后，永乐十八年，朱棣又设立了东厂，令亲信太监掌权，加强特务统治的同时提高了宦官的地位。有明一代，特务统治几乎贯穿始终，成为一大特点。
由于靖难之役时，朱棣得到了很多来自宦官的帮助，故其即位后改变了太祖禁止宦官干政的政策，开始重用宦官。一方面，明朝出现了郑和等著名的优秀宦官，下西洋开展国际交流；另一方面，由于司礼监、东厂等宦官掌权的部门地位提高，且地方镇守、监督采办等重要工作皆由宦官担任（不全为朱棣设置），埋下了日后宦官祸国的种子。

对地方经济的影响

靖难之役涉及整个华北和华东地区，反复的拉锯战使得淮河以北的社会经济遭到极大的破坏。燕京以南有大量地区的平民遭到战事的蹂躏，伤亡惨重。朱棣登基后，减免了河北、河南、山东等曾为战场的省份及其它省份的赋税，以休养生息。

文化

明成祖除了诛杀誓死效忠建文帝的大臣外，还下令对殉难诸臣以及一切与建文帝有关的文字著作一概交出烧毁，私自收藏者杀，被烧毁的著作包括如方孝孺所著的《周礼考次》、《大易枝辞》、《帝王基命录》、《文统》等。