这半年多以来,项羽寻求决战不得,平叛又疲于奔命,多少有点吃不消了,就提出愿和刘邦单挑以决胜负。刘邦笑着数落项羽的十大罪状:“一,封我做汉王,背弃了‘先入关中者王之’的前约;二,矫诏杀死卿子冠军(指宋义);三,救赵以后不回报国君,却裹胁诸侯兵杀入关中;四,烧毁秦的宫殿,挖掘秦始皇陵墓,所得财物全部私吞;五,杀死秦降王子婴;六,在新安坑杀秦国降卒20万;七,封给诸将富庶的领地,而驱逐他们的故主;八,赶走义帝,自己霸占彭城,还夺取韩、梁等国的封地;九,派人暗杀义帝于江南;十,政令不公,不讲信义,大逆不道,天下所不容。”末了还说:“我以天下的大义,联合诸侯来讨伐你。你最终一定会死在小兵手里的,我为何要和你单挑?”
项羽闻言大怒,命令弓弩齐发,结果一箭正中刘邦胸口。刘邦恐怕动摇了军心,假装低头摸摸脚趾,喊道:“啊呀,被贼人射中脚趾了。”然后率兵从容退守。彭城大战的时候,项羽捉获了刘邦的父亲刘太公和吕雉。广武对峙,他绑起刘太公来要挟刘邦,说:“你不出来,我就烹了刘太公。”刘邦回答说:“我与你都曾是义帝的臣子,约为兄弟,我父亲就是你父亲,你如果想要烹了自己的父亲,请分我一杯羹吧。”
此番言语,突显了刘邦的流氓嘴脸,然而天下无敌的项羽,偏偏就对这个流氓毫无办法。项羽无计可施,于汉王四年(前203)九月放回刘太公、吕雉等人质,和刘邦和谈,约定双方以鸿沟(在荥阳东南)为界,以东属楚,以西属汉。高祖五年(前202)十月,和约达成,项羽回师东向。刘邦在张良、陈平的劝说下,突然发兵从后追击,杀至固陵(今河南淮扬西北),但因为韩信、彭越没来会合,遭到了项羽的反击,再次大败。
韩信在攻克齐地后,考虑到此前刘邦在修武曾夺取他的士兵,就要求刘邦封其为假齐王。当时刘邦正在荥阳苦守,闻言大怒,却被张良、陈平暗踹其脚,提醒他不能在此紧要关头失去了有力的盟军。于是刘邦马上转怒为喜,回答说:“大丈夫称王就称真的,当什么假王呀。”于是封韩信为齐王。但固陵之战,韩信和彭越又没来救援,刘邦只好虚与委蛇,答应破楚以后,把从陈县以东直到海滨的土地都封给韩信,把睢阳以北直到榖城的土地都封给彭越。十二月,韩信、彭越及英布、周殷等各路兵马齐集,把项羽团团包围在垓下(今安徽灵壁东南)。
刘邦让士兵们全都学习楚歌,整晚不停地吟唱。项羽听了大惊失色,以为楚地已尽被占领。他慷慨悲歌道:“力拔山兮气盖世,时不利兮骓不逝。骓不逝兮可奈何,虞兮虞兮奈若何!”高歌数遍。虞姬唱和,“汉兵已略地,四方楚歌声。大王意气尽,贱妾何聊生。”随后自杀。项羽含泪告别心爱的虞姬,骑上乌骓马,率精锐800人奋战突围而出。等到渡过淮河,部下只剩了百余人。
项羽最终逃至乌江(今安徽和县东北)边,从者仅28骑。乌江亭长驶一叶小舟前来接他,劝项羽说:“江东虽小,足可称王。”项羽慨叹道:“天要灭亡我,还回去干什么呢?我当年率8 000江东子弟西渡,今天却没有一个能跟我回去。就算江东父老可怜我,仍以我为王,我还有什么脸面去见他们呢?”于是他把乌骓马送给乌江亭长,自己奋勇迎战追来的汉军,又杀百余人,最终力尽自刎而死。楚汉战争就此结束,西楚灭亡。
高祖五年(前202)正月,诸侯共举刘邦为皇帝,定都洛阳,西汉建立。几年后,一次刘邦大宴群臣,趁着酒兴对已被尊为太上皇的刘太公说:“您原来常骂我无赖,不能置办产业,不如哥哥们,现在您看我这份产业,和哥哥们比谁多啊?”群臣高呼万岁,刘邦仰天大笑,得意洋洋的流氓嘴脸,显露无遗。