司马欣想收集岸上人马,退回成皋,但汉军已从三面杀到。楚军慌乱应战,死伤甚多,不少仍被逼进汜水中。
曹咎在水中,进退两难,本想指挥水中楚军拼命往前,登岸后与汉军决一死战。不料,一声锣响,岸上涌出无数汉军弓箭手,不得已又招兵回渡。
岸上汉军,见曹咎回撤,遂齐声喝道:“曹咎哪里逃?”
随着喊声,万箭齐发,水中楚兵多被射死。曹咎也身中数箭,自知性命难逃,遂长叹一声:“如遵项王之嘱,哪有今日之败?”拔剑自刎而亡。
司马欣率领残兵,本想杀出一条血路,冲出重围,但他不是樊哙的对手,没战多久,就被砍伤多处,自知难以脱身,及闻曹咎战死,也举枪自刺,断喉而死。
曹咎全军覆灭,汉军大获全胜。刘邦渡过汜水,再取成皋城。成皋之战,是楚汉战争中有重要意义的一战。此战,使楚强汉弱的形势发生了根本的变化;此战,使刘邦夺回了荥阳、成皋一线的主动权,由战略防御转向了战略进攻;此战以后,汉军逐步完成了对楚军的战略包围,为楚汉决战打下了基础。
刘邦进入成皋后,安抚百姓,奖赏有功将士。又派出一支人马,入据敖仓,运粮以供军饷。