漢五年(公元前202年)漢軍集團:劉邦(4萬兵馬)、韓信(30萬兵馬)、彭越(6萬兵馬)、英布(3萬兵馬)等各路漢軍約計40餘萬人與項羽的10萬楚軍於垓下展開決戰。漢軍以韓信(10萬兵馬)率軍居中,將軍孔熙(10萬兵馬)為左翼、陳賀(10萬兵馬)為右翼,劉邦率部跟進,將軍周勃(4萬兵馬)斷後。楚軍集團:龍且的3萬前鋒軍,季布、召平、虞子期共計4萬右路軍,項羽帶領的3萬近衛騎兵迎戰。
項羽與劉邦訂立和約後,立即率軍東歸。
漢王也想撤兵西歸,張良、陳平勸他說:「漢已據天下的大半,諸侯又都歸附於漢。而楚軍已兵疲糧盡,這正是上天亡楚之時。不如索性趁此機會把它消滅。如果現在放走項羽而不打他,這就是所謂的『養虎給自己留下禍患』。」漢王聽從了他們的建議。漢五年(前202),漢王追趕項王到陽夏南邊,讓部隊駐紮下來,並和淮陰侯韓信、建成侯彭越約好日期會合,共同攻打楚軍。漢軍到達固陵,而韓信、彭越的部隊沒有來會合。楚軍攻打漢軍,把漢軍打得大敗。漢王又逃回營壘,掘深壕溝堅守。漢王問張良道:「諸侯不遵守約定,怎麼辦?」張良回答說:「楚軍快被打垮了,韓信和彭越還沒有得到分封的地盤,所以,他們不來是很自然的。君王如果能和他們共分天下,就可以讓他們立刻前來。如果不能,形勢就難以預料了。君王如果把從陳縣以東到海濱一帶地方都給韓信,把睢陽以北到谷城的地方給彭越;使他們各自為自己而戰,楚軍就容易打敗了。」漢王說:「好。」於是派出使者告訴韓信、彭越說:「你們跟漢王合力擊楚,打敗楚軍之後,從陳縣往東至海濱一帶地方給齊王,睢陽以北至谷城的地方給彭相國。」使者到達之後,韓信、彭越都說:「我們今天就帶兵出發。」於是韓信從齊國起行,劉賈的部隊從壽春和他同時進發,屠戮了城父,到達垓下。大司馬周殷叛離楚王,以舒縣的兵力屠戮了六縣,發動九江兵力,隨同劉賈、彭越一起會師在垓下,逼向項王。
四面楚歌
項王的部隊在垓下修築了營壘,兵少糧盡,漢軍及諸侯兵把他團團包圍了好幾層。深夜,聽到漢軍在四面唱著楚地的歌,項王大為吃驚,說:「難道漢已經完全取得了楚地?怎麼楚國人這麼多呢?」
霸王別姬
項王連夜起來,在帳中飲酒。有美人名虞,一直受寵跟在項王身邊;有駿馬名騅(zhuī,追),項王一直騎著。這時候,項王不禁慷慨悲歌,自己作詩吟唱道:「力量能拔山啊,英雄氣概舉世無雙,時運不濟呀騅馬不再往前闖!騅馬不往前闖啊可怎麼辦,虞姬呀虞姬,怎麼安排你呀才妥善?」項王唱了幾遍,美人虞姬在一旁應和。項王眼淚一道道流下來,左右侍者也都跟著落淚,沒有一個人能抬起頭來看他。
突出重圍
於是項王騎上馬,部下壯士八百多人騎馬跟在後面,趁夜逃出漢軍包圍,向南衝出,飛馳而逃。天快亮的時候,漢軍才發覺,命令騎將灌嬰帶領五千騎兵去追趕。項王渡過淮河,部下壯士能跟上的只剩下一百多人了。項王到達陰陵,迷了路,去問一個農夫,農夫騙他說:「向左邊走。」項王帶人向左,陷進了大沼澤地中。因此,漢兵追上了他們。項王又帶著騎兵向東,到達東城,這時就只剩下二十八人。漢軍騎兵追趕上來的有幾千人。項王自己估計不能逃脫了,對他的騎兵說:「我帶兵起義至今已經八年,親自打了七十多仗,我所抵擋的敵人都被打垮,我所攻擊的敵人無不降服,從來沒有失敗過,因而能夠稱霸,據有天下。可是如今終於被困在這裡,這是上天要滅亡我,決不是作戰的過錯。今天肯定得決心戰死了,我願意給諸位打個痛痛快快的仗,一定勝它三回,給諸位衝破重圍,斬殺漢將,砍倒軍旗,讓諸位知道的確是上天要滅亡我,決不是作戰的過錯。」於是把騎兵分成四隊,面朝四個方向。漢軍把他們包圍起幾層。項王對騎兵們說:「我來給你們拿下一員漢將!」命令四面騎士驅馬飛奔而下,約定衝到山的東邊,分作三處集合。於是項王高聲呼喊著衝了下去,漢軍像草木隨風倒伏一樣潰敗了,項王殺掉了一名漢將。這時,赤泉侯楊喜為漢軍騎將,在後面追趕項王,項王瞪大眼睛呵叱他,赤泉侯連人帶馬都嚇壞了,倒退了好幾里。項王與他的騎兵在三處會合了。漢軍不知項王的去向,就把部隊分為三路,再次包圍上來。項王驅馬衝了上去,又斬了一名漢軍都尉,殺死有百八十人,聚攏騎兵,僅僅損失了兩個人。項王問騎兵們道:「怎麼樣?」騎兵們都敬服地說:「正像大王說的那樣。」
烏江自刎
這時候,項王想要向東渡過烏江。烏江亭長正停船靠岸等在那裡,對項王說:「江東雖然小,但土地縱橫各有一千里,民眾有幾十萬,也足夠稱王啦。希望大王快快渡江。現在只有我這兒有船,漢軍到了,沒法渡過去。」項王笑了笑說:「上天要滅亡我,我還渡烏江幹什麼!再說我和江東子弟八千人渡江西征,如今沒有一個人回來,縱使江東父老兄弟憐愛我讓我做王,我又有什麼臉面去見他們?縱使他們不說什麼,我項籍難道心中沒有愧嗎?」於是對亭長說:「我知道您是位忠厚長者,我騎著這匹馬征戰了五年,所向無敵,曾經日行千里,我不忍心殺掉它,把它送給您吧。」命令騎兵都下馬步行,手持短兵器與追兵交戰。光項籍一個人就殺掉漢軍幾百人。項王身上也有十幾處負傷。項王回頭看見漢軍騎司馬呂馬童,說:「你不是我的老相識嗎?」馬童這時才跟項王打了個對臉兒,於是指給王翳說:「這就是項王。」項王說:「我聽說漢王用黃金千斤,封邑萬戶懸賞徵求我的腦袋,我就把這份好處送你吧!」說完,自刎而死。王翳拿下項王的頭,其他騎兵互相踐踏爭搶項王的軀體,由於相爭而被殺死的有幾十人。最後,郎中騎將楊喜,騎司馬呂馬童,郎中呂勝、楊武各爭得一個肢體。五人到一塊把肢體拼合,正好都對。因此。把項羽的土地分成五塊;封呂馬童為中水侯,封王翳為杜衍侯,封楊喜為赤泉侯,封楊武為吳防侯,封呂勝為涅(nie,聶)陽侯。
劉邦稱霸
項王已死,楚地全都投降了漢王,只有魯縣不降服。漢王率領天下之兵想要屠戮魯城,但考慮到他們恪守禮義,為君主守節不惜一死,就拿著項王的頭給魯人看,魯地父老這才投降。當初,楚懷王封項籍為魯公,等他死後,魯國又最後投降,所以,按照魯公這一封號的禮儀把項王安葬在谷城。