公元年1398年五月,朱元璋病逝。朱允炆继位称帝以后,年号建文,又称建文帝。建文帝与朝臣齐泰、黄子澄共谋削藩,先后削除周、齐、湘、代、岷五王,并在北平周围部署兵力,准备削除诸王中势力最为强大的燕王朱棣。建文元年七月,朱棣援引“祖训”,以“清君侧”为名,反叛侄儿建文帝朱允炆,发书讨逆,举兵反抗,自称“靖难”之师。
战争初期,燕军在军事、政治、经济上均处于劣势,故其战略为;巩固北平根据地,利用内线作战的有利条件,迅速变被动为主动,求得各个击破。七月初五日,朱棣击败朱允炆部署在北平的军队以后,连克通州、蓟州、遵化、密云、居庸关、怀来、开平龙门等地,从而巩固了北平根据地,为南下进攻打下了基础。
七月,朱棣反书至都,朱允炆祭告太庙,削朱棣宗室属籍,废为庶人。
建文帝朱允炆欲凭借其军事、政治、经济上的优势,集中强大兵力,分进合击,欲迅速将燕军包围于北平地区而歼灭之。
七月二十四日,以老将长兴侯耿炳文为大将军,驸马都尉李坚、都督宁忠为左右副将军,率师30万人北伐,命山东、河南、山西3地供给军饷。耿炳文实际先行率领十三万人出兵。京师传言,在耿炳文临行时,朱允炆亲自告诫:「毋使朕有杀叔父名。」
八月十二日,耿炳文率军进驻真定,派兵将分守各地。
朱棣乘北伐军部署未定,率军主动出击。八月十五日夜,攻破雄县,杨松全军覆没。继而伏击潘忠援军,大败其众。
八月二十五日,燕军直捣真定,此时中央军主力屯于滹沱河南北两岸,朱棣遂遣还耿部降将张保谣传燕军将下真定,诱其南岸屯军移营北岸。耿炳文移营时,燕军前来攻击,燕军趁耿炳文送使臣出城时偷袭中央军,炳文逃回城中后,怒而迎战。
一望无际,水面宽有100至200米的滹沱河北面,杀声震天,当十数万身穿火红布面战甲的耿炳文明军正以火铳、弓箭与对面同样身穿明军盔甲的数万燕军对射时,已被废为庶人的朱棣仍然打出燕王旗号,亲自率军袭击耿炳文明军侧翼,无数飞矢凌空,把燕王旗射成刺猬,但燕王混杂在诸将中,只胯下马中箭,本人仍未受重伤,朱能带三十余骑冲入中央军阵中,所向披靡,中央军投降三千多人。中央军大败后,耿炳文率残部不到十万人狼狈逃回真定城中,城池差点失守。部将李坚、宁忠、顾成等被俘;士兵被杀、被俘数万人。
耿炳文在真定坚守不出,燕军攻城三天不克。
朱棣率领诸将来到阵前,遥望高大坚固的真定城,正对诸将说道:「攻城下策,徒旷时日,钝我士气。」
那知此时,城头突然传来一声巨响。诸将眼前的燕王朱棣,载盔的头猛然如爆裂西瓜般粉碎。