建文二年四月,建文帝朱允炆为彻底平定燕王朱棣的叛乱,集结了其执政以来规模最庞大的征讨大军。大将军李景隆率主力自德州北上,而郭英、吴杰等部则从真定出发,两路兵马意图在白沟河一带合围燕军,总兵力号称六十万。面对来势汹汹的朝廷军队,朱棣并未固守北平,而是选择主动出击,率燕军渡过玉马河,于苏家桥扎营,静待决战时刻的到来。
四月二十四日,两军主力在河北高碑店市新城县以南三十里处展开首次大规模会战。南军先锋平安,因曾随朱棣北征而深谙其战术,预先设下伏兵。待燕军进入预设战场,平安伏兵尽出,挺矛猛冲;与此同时,猛将瞿能父子亦率部夹击,致使燕军初战即陷入被动。更令燕军雪上加霜的是,郭英部及时赶到战场,并在燕军可能的撤退路线上预先埋设了大量火药(可视为早期地雷),导致燕军后撤时伤亡惨重。朱棣亲自殿后,却于夜间迷路,一度需伏地辨识水流水向才得以脱险,狼狈返回大营。此战失利,迫使朱棣必须思考破敌之策。
四月二十五日,决定双方命运的决战正式打响。战事伊始,南军便展现出优势。瞿能、平安率精锐骑兵灵活穿插,成功绕至燕军侧后,对其后军造成严重打击。朱棣见形势危急,亲率精锐骑兵,冒着如雨箭矢,直冲李景隆所在的中军大阵。他先后换乘三匹战马,射光三筒箭,甚至将佩剑都砍至断裂,却仍未能撼动南军中军,自己还险些被平安与瞿能所伤。
战局对燕军极为不利,朱棣一度被逼至河堤之上。在此绝境中,他急中生智,举起马鞭向远处挥舞,佯装召唤援军。这一举动果然使李景隆心生疑虑,攻势稍缓。恰在此时,朱棣次子朱高煦率领援军赶到,暂时稳住了阵脚。然而,骁勇的瞿能很快再次集结部队,高呼“灭燕”口号发起猛攻,燕军阵线又一次岌岌可危。
就在燕军即将崩溃的千钧一发之际,战场形势发生了戏剧性的逆转。一阵突如其来的猛烈旋风,竟将李景隆军中那面代表统帅权威的帅旗拦腰刮断!在古代战场上,帅旗是指挥中枢与全军士气的象征,帅旗一倒,南军各部顿时陷入指挥混乱、军心大乱的境地。
久经战阵的朱棣敏锐地抓住了这转瞬即逝的战机。他并未选择正面强攻陷入混乱的南军主力,而是亲自率领一支机动骑兵,凭借对战场地形的熟悉,利用烟尘与混乱作为掩护,悄然进行了一次大胆的纵深迂回。这支奇兵成功绕到了李景隆大军主阵的后方,而南军因帅旗折断、指挥失灵,未能及时察觉这一致命威胁。朱棣随即下令纵火,当时正值天干物燥,火借风势(很可能是那阵旋风的余威),迅速在南军后方的营垒、辎重中蔓延开来。
后方突遭火攻,前方军心已乱,南军彻底崩溃,兵败如山倒。瞿能父子在乱军中被朱高煦斩杀,郭英部向西溃退,李景隆则抛弃了全部辎重粮草,向南狂逃至德州。此战,南军仅投降者就超过十万人,其最精锐的野战力量损失殆尽。
白沟河之战的胜利,彻底扭转了靖难之役的战略态势。朱棣乘胜追击,于四月二十七日进逼德州,五月初九便轻易占领这座储备重镇,获得了大量补给。李景隆一败再败,逃至济南,其残余的十余万部队已士气全无,在燕军面前不堪一击。五月十五日,燕军进围济南,建文帝朝廷在北方已无力组织有效的战略反击。
此役的惨败也引发了南京朝廷的剧烈震荡。李景隆丧师六十万,黄子澄、练子宁等重臣联名上书请求将其处斩,但建文帝朱允炆却念及亲情(李景隆为其表兄)而未予采纳。推荐李景隆挂帅的黄子澄更是追悔莫及。白沟河之战不仅是朱棣军事生涯中的经典逆袭之战,也成为了靖难之役的关键转折点。经此一役,战争主动权完全转移至燕王朱棣手中,建文帝朝廷则从此陷入了战略被动,直至最终覆亡。