建文元年(公元1399年)八月,朱允炆任命太祖旧臣耿炳文为征虏大将军,李坚和甯忠为左、右副将,起兵讨伐朱棣。耿炳文在太祖开国众臣中,能力并不算出色。但因为朱元璋晚年大肆屠戮功臣,元勋宿将凋零,朱允炆能拿得出手的将领并不多。耿炳文也勉强算是打过大仗的人,朱允炆选他为将,也算是无可奈何之举。当然,起兵也免不了誓师,朱允炆在誓师时祭告了天、地、宗庙和社稷,宣布削除朱棣的王爵。下诏令说:“国家和宗族不幸,朕的骨内宗亲多次出现谋逆的行为……朕因为朱棣血脉关系亲近的缘故,没有忍心认真追究他谋逆之事,现在朱棣居然不念恩德,举兵造反作乱。意图危及宗庙社稷,这种行为被天地祖宗所唾弃,罪不容诛……”等,要求天下各色人等,与国同心,齐心协力扫**叛乱,安定天下。
耿炳文引军三十万,兵发真定,前锋抵达雄县时,遭遇燕军埋伏,全军被朱棣骑兵突袭,阵形被冲散,溃不成军。残兵退守雄县县城。朱棣夜渡白沟河,包围了雄县,未几破城,杀九千余人。取胜后燕王马不停蹄又赶到真定,与张玉、谭渊两面夹击耿炳文主力,再次大败耿炳文,活捉李坚、甯忠及顾成,歼敌三万余人,取得大胜。耿炳文引残军退守真定,朱棣引兵围真定,连续二日不克。朱棣恐牵延时久,夜长梦多,怕耿炳文援军到来,腹背受敌,于是引兵退去。
真定之战,燕军以精锐骑兵突袭,冲击耿炳文部,以少胜多,取得大胜。由此也可看出明军统帅的军事素养与士兵的战斗力与燕军存在着巨大的差距。对明军而言,最恐怖的时刻即将到来,他们能扛住燕军的下一波重击吗?