燕王朱棣大敗李景隆六十萬人馬、收編寧王麾下泰寧、朵顏、福餘三衛,天下都爲之震驚。甚至於韃靼國公趙脫、列幹司徒趙灰、鄰帖木兒司徒劉哈剌帖木兒,都率衆自沙漠來歸。一時間北平城的軍民人等盡皆喜氣洋洋。偏朱棣仍覺不安,大勝之後不僅不喜,反倒連上三篇奏章陳述前事之無奈。
反觀朝廷,建文帝不僅置燕王奏章於不顧,反而撫慰敗軍之將李景隆,令其重整人馬再度伐燕。建文二年四月,李景隆會同郭英、吳傑等又整兵將60萬進抵白溝河,對北平虎視眈眈。燕王大駭,忙遣張玉統領中軍爲先鋒,會同朱能、邱福、陳珪領軍十萬對敵。
張玉領軍駐紮在白溝河上三日,觀察敵營,見敵軍兵馬雖多,卻統領不一,便以精騎出擊襲擾。李景隆輕敵,便派軍出迎,豈料精騎只是誘餌,張玉的大軍早埋伏在兩翼,朝廷軍馬一經出迎便中了埋伏。因軍馬太多,難以號令,朝廷軍馬驟見伏兵,大驚之下便潰逃而去,踐踏死傷者無數。張玉趁機引兵追殺,大敗李景隆於白溝河。
李景隆只得退走德州,張玉卻領軍緊追不捨,李景隆在德州立足未穩便又匆匆棄城而逃,直奔濟南。此時燕王朱棣率領各部人馬與張玉合會,大軍也不歇息,直撲濟南城。李景隆尚不及入城,僅剩的十萬人馬又被燕軍擊潰。虧得濟南都督盛庸和山東布政使鐵鉉開城來援,方救回了一條性命。
眼見大軍圍困,山東布政使鐵鉉遣人下書投降曰:"奸臣不忠,使大王冒霜露,爲社稷憂。誰非高皇帝子?誰非高皇帝臣民?其又奚擇焉!唯是東海之民,不習兵革,聞大軍壓境,將謂聚而殲旃,是失大王安天下、子元元之之意也。請大王退師十里,單騎入城,臣等具壺漿以迎。"
衆將見了這封降書,都覺有詐。燕王卻不禁沉吟:“此戰乃是我大明軍士內戰,死傷者皆我大明將士,本王自少年時便常隨在軍營,豈忍自相殘殺、害了自家人的性命?本王曾下令,但凡投降的軍士,願留則留,不願留則發放銀兩送其回鄉。滹沱河之役,譚淵曾殺了三千降卒,哎,這本是極重的罪孽。本王當時便駁斥了他。本王每臨戰時也都戒諸位切勿妄殺,惟譚淵好殺不止,天報顯明,若此所爲,只怕譚淵不能免禍乎!”
這件事衆將也都知曉。燕軍與朝廷軍馬對敵,每次大勝都放歸俘虜,可哪裡想到那些俘虜領了銀兩口口聲聲說要回鄉,其實轉身又重歸朝廷麾下,隔了幾日便又來軍前叫陣。將士們其實也對此深惡痛絕,只礙於燕王將令,不好違拗罷了。如今聽燕王又如此說,也自不敢多口。
朱棣想了想,不無感嘆:“若是濟南城真是誠心歸降,那可以免了多少軍民枉送性命?道衍大師若是知曉了,也當稱頌的。所以,無論鐵鉉歸降是真是假,本王都該當去走上一遭。”
衆將無奈,只得退軍十里紮營,留下張玉、朱能領着百騎悄悄侯在城外的小樹林裡,燕王朱棣則單人匹馬入城。哪裡想到這果然是鐵鉉耍的詭計,待燕王剛要入城,城門上忽然落下一塊鐵石直朝面門砸了過來。燕王慌忙要逃,可馬匹太大,城門太窄,哪裡容得他轉身?朱棣只好滾落下馬,逃了出去,隨行的白馬卻被鐵石砸成了肉泥。
燕王又驚又怒,回營重整軍馬再度圍城。
至第三個月,京師忽然大火,朝中大臣皆言乃是不詳之兆,趁機上書建文帝"宜罷兵息民以答天譴"。方孝孺也建言朝廷與燕王言和,以遷延時日,方可重整軍威再戰。建文帝因此下詔罷免齊泰、黃子澄,貶爲庶人,與燕王朱棣言和。
燕王出兵日久,也恐糧道被斷,遂歸還山東、河北各州府,領兵回撤北平。
盛庸趁機收復德州,吳傑、平安則進駐定州,徐凱、陶銘進駐滄州。一時間,朝廷軍馬又成犄角之勢與北平對峙。
朝廷趁機得以喘息,罷免李景隆,命盛庸爲平燕將軍,代李景隆統兵伐燕。盛庸屯兵德州,以遏燕軍南下。建文二年九月,盛庸率兵北伐,十月,至滄州。燕王罷兵尚未及回城,得聞消息,忙遣張玉領兵一萬回師迎敵。張玉引軍也不叫陣,直攻敵營,一夜即破了滄州,生擒滄州主將徐凱。十二月,燕王朱棣領軍攻東昌,正遇着北伐主帥盛庸。兩軍對峙,盛庸背城列陣。燕王朱棣長途跋涉而來,也不敢歇息,便自領軍衝擊敵營左翼。奈何盛庸早料到朱棣會先攻左翼,將精銳之師盡屯於此。朱棣幾次衝擊無果,只得轉攻中軍,盛庸趁機引左右兩翼將其重重包圍。
自滄州而來的張玉、朱能見狀忙親自領兵去救。可張玉、朱能二人只有五千人馬,分從左右兩翼衝入敵營,在亂軍叢中左衝右突,死傷了大半,哪裡尋得找燕王的身影?
偏在此時,朱能眼見前方敵營密密麻麻地圍成一個圈,弓箭手引弓,卻不敢放箭,料想可能是燕王,便發了狠地往裡直突。朝廷軍馬眼中只有燕王,並不料後面還有援軍,一時間被殺得大亂。朱能快馬趕到跟前,果見燕王朱棣滿身是血被圍在中央。朝廷軍士想來是畏於燕王身份,並不敢朝其動兵戈,這才保住了性命。朱棣與朱能會合一處,拼死殺出重圍。只可惜了一代名將張玉不知朱棣已被救出,仍在陣中不斷衝殺,終力竭而死。
東昌大敗,張玉戰死,燕軍氣勢低迷,人人都面露慟色。燕王朱棣見折了張玉這麼一位知己戰將,心裡也自悲痛,下令全軍戴孝,祭奠張玉。又過幾日,因朝廷軍馬雖然東昌取勝,卻也折了許多人馬,並不敢再攻,燕王這才下令撤軍。十萬燕山將士,盡皆一身白綾地匆匆回守北平。