大宁为宁王朱权的封藩,所属朵颜诸卫,多为蒙古骑兵,骁勇善战。朱棣攻破大宁后,挟持宁王回北平,合并了宁王的部属及朵颜三卫的军队。朱棣带着这些精兵强将于十一月回师至北平郊外,进逼李景隆军营。燕军内外夹攻,南军不敌,李景隆乘夜率先逃跑,退至德州。次日,士兵听说主帅已逃,“乃弃兵粮,晨夜南奔”。
建文帝为大臣所蒙蔽,反而奖励打了败仗的李景隆。朱棣围攻济南三月未下,遂回撤北平。李景隆一败再败,建文帝撤免了他的大将军职务,代之以盛庸。燕军屡胜轻敌,被南军大败,朱棣亲信将领张玉死于战阵,朱棣自己也被包围,借朱能援军的接应才得以突围。东昌战役是双方交战以来,南军取得的第一次大胜利。兵败后,朱棣总结说:“东昌之役,接战即退,前功尽弃,今后不能轻敌,不能退却,要奋不顾身,不惧生死,打败敌手。”