周苛、魏豹、枞公留守荥阳,将领和士卒不能随从的,都留在城中。周苛、枞公商量说:“魏豹这个叛国之王,很难和他共守城池。”因此就杀死了魏豹。
汉王逃出荥阳进入函谷关,收集士卒,想再次东进。袁生劝汉王说:“汉与楚在荥阳相持了几年,汉军常处于困难。希望君王从武关出去,项羽肯定引兵向南行进,君王深沟高垒,让荥阳、成皋之间得到休息。派韩信等安辑黄河以北的赵地,联合燕、齐,君王再赴荥阳,也为时不晚。这样,楚军多方设防,军力分散,汉军得到休整,再与楚军作战,肯定可以打破楚军了。”汉王采纳了他的计策,出兵宛县、叶县之间,与黥布在进军中收集兵马。
项羽听说汉王在宛县,果然带兵南下。汉王坚壁固守,不和他交战。这时彭越渡过睢水,与项声、薛公战于下邳,彭越大败楚军。于是项羽率军向东攻打彭越,汉王也引兵向北驻军成皋。项羽已经取胜,赶走了彭越,得知汉军又驻扎在成皋,就又领兵西进,攻克荥阳,杀了周苛、枞公,俘虏了韩王信,于是进围成皋。
汉王逃走了,单身一人与滕公同乘一辆车出了成皋的玉门,向北渡过黄河,驰至修武住了一夜。自称为使者,早晨驰入张耳、韩信的营中,夺取他们的军队,就派张耳去北边赵地更多的收集兵力,派韩信东进攻齐。汉王得到韩信的军队,军威又振作起来。率军来到黄河岸边,向南进发,在小修武南面让士卒吃饱喝足,打算与项羽再一次交战。郎中郑忠劝阻汉王,让他深沟高垒,不要和项羽交锋。汉王采用了郑忠的计策,派卢绾、刘贾率兵两万人,几百个骑士,渡过白马津,进入楚地,与彭越在燕县城西又打败了楚军,随后又攻下梁地十多座城邑。
淮阴侯已经接受命令向东进军,在平原没有渡过黄河。汉王派郦生去说服齐王田广,田广背叛了楚,与汉讲和,一起攻打项羽。韩信采用蒯通的计策,突然袭击,打败了齐国。齐王烹杀了郦生,向东逃到高密。项羽听到韩信已经全部利用黄河以北的兵力打垮了齐、赵,而且要攻打楚军,就派龙且、周兰前去阻击。韩信与楚交战,骑兵将领灌婴配合出击,大败楚军,杀了龙且。齐王田广投奔彭越。在这个时候,彭越领兵驻扎梁地,往来骚扰楚军,断绝它的粮食。
四年,项羽对海春侯大司马曹咎说:“谨慎防守成皋。如果汉军挑战,千万小心。不要应战,不让汉军东进就行了。我十五天一定平定梁地,再与将军会合。”于是就进军攻打陈留、外黄、睢阳,都攻了下来。汉军果然屡次向楚军挑战,楚军不肯出战。汉军派人辱骂了五六天楚军,大司马十分气愤,让士卒渡过汜水。士卒渡过一半,汉军出击,大败楚军,全部缴获了楚国的金玉财宝。大司马曹咎、长史司马欣都自刎在汜水上。项羽到达睢阳,听到海春侯兵败,就带兵返回。汉军正在荥阳东面围攻钟离眜,项羽一到,全部撤走到险阻地带。
韩信已经打垮了齐国,派人对汉王说:“齐国靠近楚国,如果权力太小,不立为暂时代理的国王,恐怕不能安定齐地。”汉王想要攻打韩信。留侯说:“不如就此封他为王,让他自己防守齐地。”汉王便派遣张良带着印缓立韩信为齐王。
项羽听到龙且的军队战败了,心里很恐惧,派盱台人武涉前去游说韩信。韩信不肯听从。
楚、汉长期相持,胜负未决,年青力壮的苦于当兵打仗,年老体弱的疲于转运粮食。汉王、项羽一同站在广武涧两边对话。项羽想跟汉王单身挑战。汉王历数项羽的罪过说:“最初我和你项羽都受命于怀王,说是先入关平定关中的,就在关中做王。你项羽违背约定,让我在蜀、汉做王,这是第一罪。你项羽假借怀王的命令,杀了卿子冠军,而自尊为上将军,这是第二罪。你项羽已经援救了赵地,应当返回复命,而你擅自胁迫诸侯的军队进入函谷关,这是第三罪。怀王约定到秦地不要残暴掠夺,你项羽火烧秦朝宫室,挖了始皇帝的坟墓,私自聚敛秦朝财物,这是第四罪。又硬是杀掉了秦朝投降的国王子婴,这是第五罪。在新安,用欺骗的手段坑杀了秦朝子弟二十万,而封他们的将领做王,这是第六罪。你项羽让自己的将领都在好地方做王,而迁走原来的诸侯王,使臣下争为叛逆,这是第七罪。你项羽把义帝驱逐出彭城,自己建都彭城,夺取韩王的土地,合并梁、楚称王,多划给自己土地,这是第八罪。你项羽派人在江南暗杀义帝,这是第九罪。为人臣下而杀害了他的君主,屠杀已经投降的人,执政不公允,主持约定不守信用,为天下人所不容,大逆无道,这是第十罪。我带领正义之师随从诸侯来诛除残暴的贼人,派受过刑的罪人杀死你项羽,我何苦与你挑战!”项羽大怒,埋伏的弓弩射中了汉王。汉王伤了胸部,却摸着脚说:“这个贼人射中了我的脚趾!”汉王身受创伤,卧床不起,张良请汉王勉强起来巡行慰劳士卒,以安定军心,不让楚军乘机取胜于汉。汉王出来巡视军队,伤势加重,就驱车进入成皋休养。
汉王病好了,向西进入函谷关,来到栋阳,慰问父老,设酒招待。砍了塞王司马欣的脑袋,挂在栎阳街市上示众。停了四天,又回到军中,驻扎在广武。关中的兵力大举出动。
当时,彭越带兵驻扎梁地,来来往往地骚扰楚军,断绝它的粮食。田横前往依附彭越。项羽多次攻打彭越等人,齐王韩信又进攻楚军。项羽恐惧,就与汉王约定,平分天下,割鸿沟以西归汉,鸿沟以东归楚。项王送回了汉王的父母妻子,汉军全部高呼万岁,楚军告别汉军回到了驻地。
项羽解兵东归。汉王想要领兵西还,后来采用留侯、陈平的计策,进兵追击项羽,到达阳夏南面收兵驻扎,与齐王韩信、建成侯彭越约定时间会合攻打楚军。到了固陵,韩信、彭越不来会合。楚军出击汉军,大败汉军。汉王又进入营垒,挖深了壕沟进行防守。使用了张良的计策,于是韩信、彭越都前来会合。又有刘贾进入楚地,围攻寿春。汉王在固陵战败,就派使者去召大司马周殷,用全部的九江士卒迎接武王黥布,黥布、周殷在进军中攻下城父,大肆屠杀。他们随从刘贾和齐、梁的诸侯大会垓下。汉王封武王黥布为淮南王。