从樵夫和中央军被俘士兵处得知敌情，于是燕军发动决战。二十五日，燕军趁耿炳文送使臣出城时偷袭中央军，炳文逃回城中后，怒而迎战。在燕军主力与耿炳文军相持时，朱棣亲自率军袭击其侧翼，耿炳文大败溃逃，中央军投降三千多人。中央军狼狈逃回城中，城池差点失守。部将李坚、甯忠、顾成等被俘；士兵被杀、被俘数万人（后放还）。耿炳文率残部不到十万人在真定坚守不出，燕军攻城三天不克。八月二十九日，燕军返回北平。顾成降燕之后，留在北平协助燕世子朱高炽守城。耿炳文战败，朱允炆开始担忧战事，考虑换将。黄子澄说曹国公李景隆是名将李