五月,燕军进攻德州,李景隆再败,又逃往济南。燕军随即集中兵力进攻济南,李景隆军在城下列阵,又被击败。燕军进攻济南城,铁铉、盛庸坚守不出,燕军死伤惨重,不克而还。
九月,朱允炆下令撤换李景隆,任命盛庸为平燕将军,代替李景隆为将。盛庸能力比起李景隆还是略胜了好几筹的,至少拥有优势兵力的情况下不会昏招迭出,他上任后,组织攻势,又夺回了德州。盛庸分兵四部,与吴杰、平安、徐凯互为掎角,以围困北平城。
燕军出战,与盛庸会战于东昌,盛庸用火器和强弓劲弩远程射击燕军,燕军全军溃散。此后,平安率军赶到,与盛庸合围燕军。朱棣大败而逃,拼命突围,仅以身免。此战燕军阵亡数万人,连主帅张玉都战死了。过了几天,再次会战,又击败了燕军。朱棣引残兵,败退到馆陶。盛庸军势大振,发檄文要求天下各地合击燕军,断绝其退路。见战势顺利,朱允炆心情大好,下诏恢复了齐泰、黄子澄的官职。可能是觉得胜利在望,他又下了一道诏令,再次要求诸军见朱棣不许伤他的性命,“毋使朕负杀叔父名”。这当然是迂腐之举,两军阵前若缩手缩脚,又怎么能打得好仗。