耿炳文,濠州人,父亲名叫君用。耿君用跟随太祖渡长江,因战功累升至管军总管。增援宜兴,和张士诚的部队进行激烈争战,最后耿君用战死。耿炳文承袭父职,率领着他父亲的军队。他攻取了广德,进攻长兴,打败张士诚的大将赵打虎,缴获战船三百余艘,生擒敌守将李福安等人,攻克长兴。长兴地处太湖口,陆上通广德,与宣、歙等地接壤,是江、浙的门户。太祖得到了长兴这个地方,十分高兴,将长兴改名为长安州,并在此地设立永兴翼元帅府,任命耿炳文为总兵都元帅守卫这里。温祥卿,足智多谋,因躲避战乱前来归附,耿炳文把他请入了幕府,制订实施防御计划十分周密。张士诚的左丞潘元明、元帅严再兴率兵进犯长安州。耿炳文奋力反击,大败敌军。此后,张士诚再次派司徒李伯升率兵十万,分水陆向长安州杀来。当时城内只有守兵七千人,太祖十分着急,连忙命令陈德、华高、费聚前来增援。谁知李伯升黑夜偷袭援军营寨,几位大将溃散。耿炳文固守城池,敌方攻击十分猛烈,炳文采用不同的方式加以防御。战争持续了一个多月,在这期间,炳文一直不敢懈怠。常遇春再次率兵增援,李伯升弃营逃跑,耿炳文乘胜追击,追杀了李伯升军队五千余人。第二年,永兴翼元帅府被改为永兴卫亲军指挥使司,任命耿炳文为永兴卫亲军指挥使。不久,张士诚又出大军,并派他的弟弟张士信来争夺永兴。耿炳文打败了张士信,并俘虏了敌军元帅宋兴祖。张士信大怒,大军围城。耿炳文和费聚迎战,又大败敌军。长兴是张士诚的必争之地,耿炳文在此坚守了大概有十年之久,他以寡敌众,大小十几次战争,战无不胜,使得张士诚的目的不能得逞。大军征讨张士诚,耿炳文所部攻克湖州,围困平江。平定吴地后,炳文被晋升为大都督府佥事。
耿炳文随大军征讨中原,攻克山东沂、峄等州,攻下汴梁,巡视河南,侍从皇上北巡。又随常遇春攻占大同,攻克晋、冀。随大将军徐达征讨陕西,打败了李思齐、张思道。镇守此地,疏通泾阳洪渠十万余丈,给老百姓带来了很多好处。耿炳文被任命为秦王左相都督佥事。
洪武三年(1370),封耿炳文为长兴侯,食禄为一千五百石,给予世袭的凭证。
十四年,随大将军徐达出塞,败元朝平章乃儿不花于北黄河。十九年,随颍国公傅友德征讨云南,平定曲靖蛮。二十一年从永昌侯蓝玉北征,到达捕鱼儿海。二十五年,耿炳文率兵平定陕西徽州妖人之乱。三十年,任征西将军,擒获蜀寇高福兴,俘虏敌军三千人。
最初,炳文守卫长兴,功劳最大,太祖排列功臣,把炳文和大将军徐达列为一等。到了洪武末年,诸公、侯都已经死了,幸存的只有耿炳文和郭英二人。耿炳文因是开国元勋,为朝廷器重。
建文元年(1399),燕王叛乱,皇上任命耿炳文为大将军,统率副将军李坚、宁忠北伐。当时耿炳文已经六十五岁。号称三十万大军,实际上只有十三万人。八月初,部队到达真定,在滹沱河的南北两岸分营扎寨。都督徐凯驻扎在河间,潘忠、杨松驻军在莫阝州,先锋九千人驻扎在雄县。时值中秋,部队没有多少防备,遭到燕军的突然袭击,先锋九千人全部被杀。潘忠等率军来增援,过月漾桥时,被伏击,落入水中,潘忠、杨松都被俘。两位大将宁死不屈,最终被杀。这样,莫阝州失守。而这时耿炳文的部将张保向燕军投降,并向燕军报告了南岸部队的虚实情况。燕王放张保回去,要他张扬雄县、莫阝州惨败的情景,并说北军将要到来。于是耿炳文转移部队,且全部渡河,全力抗敌。待炳文军队转移之际,燕兵突然来临,沿城攻击。耿炳文的部队不能成列,溃败入城。部队都拥挤在城门里,造成堵塞,自相践踏,被踩死的不可数计。燕兵将城紧紧围住,耿炳文尚有十万军队,坚守而不敢出来。燕王知道耿炳文是一员老将,攻城不是件容易的事,过了三天,就自动撤兵了。皇上听说耿炳文失败了,十分担心。太常卿黄子澄推荐李景隆为大将军,乘坐驿车前来取代耿炳文。等他来到前线,燕国的军队已于前一天撤离了。耿炳文返回,李景隆代替他统率全军,最终导致了失败。燕王称帝的第二年,刑部尚书郑赐、都御史陈瑛弹劾耿炳文,原因是因为炳文的衣服、器皿上有龙凤的图饰,用红革呈做玉带,他的这些行为已是大逆不道。耿炳文十分害怕,就自杀了。