建文皇帝得到耿炳文戰敗的訊息後,召其回京,改任李景隆為大將軍。李景隆雖然是名將李文忠的後人,但自幼嬌生慣養,只會紙上談兵,沒有真本領。九月,李景隆進至德州,收集潰散兵卒,調集各路軍隊,號稱50萬,進抵河間府。此時江陰侯吳高奉建文皇帝命令,率兵從遼東南下進攻永平。朱棣為爭取戰略上的優勢,不理睬李景隆,而是親率大軍回援,朱能跟隨前往,趕走吳高,殺獲很多。隨後,朱棣又兵指大寧,控制了寧王朱權,把寧王手下精銳的朵顏三衛軍士收歸己有。
李景隆聽說朱棣主力離開北平,於是率兵過盧溝橋,抵北平城下。朱棣長子朱高熾在姚廣孝的幫助下,拼死守衛。李景隆號令不嚴,指揮失當,幾次攻城,都被擊退。南軍都督瞿能曾經率千餘精騎,殺入張掖門,但後援遲遲不至。李景隆貪功,命令瞿能停止前進,等待大部隊一起進攻,錯過了時機。燕軍乘機休整,連夜往城牆上潑水,天冷結冰,待到次日,南軍再也無法攀城進攻了。
十一月,朱棣帶兵回師至北平郊外,在鄭村與李景隆軍遭遇,朱能大敗南軍。又進攻南軍大營,再獲勝利。北平城中軍�