楚军挑战,楚军不出来应战。汉军派人在阵前辱骂楚军,骂了五六天,大司马十分气愤,让士卒渡过汜水,(迎击汉军。)士卒刚渡过一半,汉军出击,大败楚军,缴获了楚国全部物资。大司马曹咎、长史欣都自刎在汜水上。大司马曹咎原来是蕲县的狱掾,长史司马欣原来是栎阳的狱吏,两人曾对项梁有过恩德,因此项王信任他们。当时,项王在睢阳,听说海春侯的军队失败了,就率军返回。汉军正在荥阳东面围攻钟离眛,项王一到,汉军害怕楚军,全部撤走到险阻地带。
这时,汉军兵多粮足,项王兵疲粮绝。汉王派遣陆贾劝说项王,请求释放太公,项王没有答应。汉王又派遣侯公前去劝说项王,项王就和汉约定,平分天下,划鸿沟以西归汉,鸿沟以东归楚。项王答应了侯公的要求,就把汉王的父母妻子送了回来。汉军都高呼万岁。汉王封侯公为平国君。侯公隐匿起来,不肯再见汉王。汉王说:“这个人是天下善辩之士,所到之处,可以使人国家覆灭,所以封号为平国君。”项王已经订立和约,就解除了军事对峙,率军东归。
汉王准备西归,张良、陈平劝汉王说:“汉占领了大半个天下,而诸侯都归服了我们。楚军兵疲粮尽,这是上天让楚灭亡的时候,不如乘这个机会消灭它。现在放走项王不去攻打他,这就是所谓‘养虎自遗患’。”汉王同意了他们的建议。
汉五年,汉王追击项王到了阳夏南面,军队驻扎下来,与淮阴侯韩信、建成侯彭越约期会合进攻楚军。到达固陵,而韩信、彭越的军队不来会合。楚军攻击汉军,把汉军打得大败。汉王又进入营垒,挖深沟堑,自为固守。汉王对张子房说:“诸侯不遵守约定,怎么办呢?”张子房回答说:“楚军即将崩溃,韩信、彭越没有分到一块封地,他们不来会合是很自然的。君王能和他们共分天下,眼下可以使他们立刻前来。如果不能这样,局势的发展很难预料。君王能从陈县以东到海边的地区,全部划给韩信,睢阳以北到谷城,分给彭越,使他们各自为战,那么楚军是容易打败的。”汉王说:“好。”于是就派遣使者告诉韩信、彭越说:“合力攻打楚军。楚军崩溃后,从陈县以东到海边给予齐王,睢阳以北到谷城给予彭相国。”使者一到,韩信、彭越都回话说:“请让我们立刻进兵。”韩信就从齐地出发,刘贾的军队从寿春出发并行,屠毁了城父,到达垓下。大司马周殷背叛了楚国,利用舒地的兵力屠毁了六县,调动全部九江士卒,随同刘贾、彭越都会集在垓下,来到项王阵前。
项王的军队筑垒垓下,兵少粮尽,汉军和各路诸侯军队把它重重包围起来。夜晚