東昌之戰

背景

济南之战后，南军因撤换主帅取得主动优势，遂主动发动讨伐战。
建文二年（公元1400年）十月，朱棣闻报南军北上，主动南下迎击，明令征辽东，暗派徐理、陈旭在直沽（今天津市中）修浮桥，以绕过青县、长卢的南军防线部署。

进军和前哨战

十月廿五，领军从通州折南，沿河昼夜兼行，袭擒监仓哨所百余人，南军遂不知燕军动向。十月廿七到沧州，敌军守将徐凯尚在修筑防御中，将士来不及换上战甲即投入战斗。燕军大将张玉（一说朱棣亲自）帅部队肉搏攻下沧州城。斩首万余级，获马九十余匹，生擒都督徐凯、程暹、都指挥俞琪、赵浒、胡原、李英、张杰并指挥以下百余人。 。 燕军自长芦渡河经过景州，十一月初四到达德州，并不理会济南城。 时盛庸守卫德州，朱棣招降盛未果，遂南下；盛庸军袭击燕军后军，却因为朱棣亲自殿后，将士都不敢射箭或接战擒敌，即便朱棣所部仅数十骑，燕军擒杀百余人再而全军而退。
十一月，燕军到达临清；朱棣决定扰乱南军的粮道，遣轻骑至大名，焚其粮船。燕军从馆陶渡河（卫运河，京杭运河的一部分；当时黄河夺淮入海），先后到达东阿、东平，威胁南方，迫使盛庸南下。
盛庸将计就计，决定在东昌（今山东聊城）决战，并在阵中摆了大量火枪和毒弩。

首日作战

十二月廿五，燕军至东昌，盛庸率部出城迎击。朱棣仍然亲自率军冲锋，沿用之前的战术，先冲击其左翼，但因盛庸部署了精锐步兵于彼而不动；然后又冲击其中坚，盛庸开阵将朱棣诱入，然后合围。朱棣被重重包围，燕军张玉、朱能（一说还有朱高煦）分别引兵来救，朱能（或朱高煦，下同不表）负责杀入重围援救朱棣，张玉则负责吸引分散敌军，终于朱棣和朱能会合，逃离战场。但大量燕军军士被预先布置的火器剑弩所伤，张玉则战死。平安亦率兵赶来，与盛庸合兵作战。

再战和败退

次日，燕军再战不利，共计损失万余人，遂北还，盛庸等率部追杀，北军死伤甚多。
击退南军的阻截后，建文三年正月十六，燕军部队返回北平。
张玉战死，朱棣十分悲伤。

燕军

东昌之战，朱棣多次濒临险境。但是由于朱允炆的“毋使朕有杀叔父名”旨意，诸位将领怕被朱允炆带上杀叔的帽子，而被处决，又怕抓住朱棣让朱允炆难做，朱允炆之后会刁难自己，南军不敢伤害他，也不敢抓他；朱棣也恃此特权，单骑视察前线或殿后，南军无可奈何。

建文军

东昌之战是靖难以来南军的第一场大捷。惠帝朱允炆十分高兴，建文三年（1401年）正月恢复了齐泰、黄子澄的官职（建文元年十一月两人被罢免，但仍作为智囊留用；至是恢复齐的兵部尚书和黄的太常寺卿职务），并以东昌大捷告太庙。

局势

盛庸军势大振，燕军经此败，以后再南下，皆由徐沛，不再走山东。
在靖难全局中，盛庸、平安等人通过山东境内的两次胜利消耗了燕军有生力量，有效遏制了燕军南进之步伐，使得山东全境尤其是德州、济南等战略要地得以巩固。使得局势一时平衡，南北二方都无法取得压倒性优势。