漢四年(公元前200年)八月,項羽已經發現自己孤立無援,軍糧極度匱乏。韓信占領了齊國,伙同彭越經常進兵攻打項羽的糧道,彭城也被灌嬰拿下。項羽自覺不支,對局勢很恐懼。根據《史記·項羽本紀》記載:這時,劉邦先派陸賈去求和,項羽不聽,劉邦又派一個叫侯公的人去,項羽才答應和談。為何項羽處于弱勢,卻是劉邦要主動求和呢?按照史書記載,原因很簡單,劉太公和呂雉在項羽手里,劉邦要把兩人換回來。
按照雙方約定,以鴻溝為界,以西歸劉邦,以東歸項羽。從這個約定看,項羽獨霸天下是不可能了。項羽和劉邦簽完約,把劉太公和呂雉還給劉邦,他就撤兵了。雖然他撤兵了,但也沒逃過劉邦的追殺。在張良的慫恿下,劉邦率領大軍,尾隨項羽而來。漢六年十月,項羽沿著鴻溝向滎陽的東南方向撤軍。這時候,彭城已經被劉邦的部隊占領,項羽不可能再向東回彭城了,他只能向著江東的方向奔命。
到達陽夏這個地方時,項羽的大軍被漢軍追上,漢軍取得了一個小勝利。項羽的楚軍繼續南撤,到達固陵后,楚軍反擊,漢軍則被打得大敗。漢軍無法打敗楚軍,沒辦法,只能筑起高壘,和楚軍對峙。張良對劉邦說:“就這么對峙也不是辦法,你應該趕快給韓信和彭越分封土地,讓他們死心塌地地和你一起打項羽?!碑敃r,韓信已被封為齊王,但還沒有確定封地。在張良的建議下,劉邦封彭越為梁王,并明確了韓信和彭越的封地。隨后,他們兩人馬上帶兵,前來支援劉邦。
之后,項羽的楚軍繼續向南到達陳縣,也就是今天河南省淮陽縣。在這里,劉邦匯集各路大軍,進攻項羽。具體地點,史書說是在陳下,也就是陳縣城墻以外。按常理推斷,應該是在陳縣以東,因為鴻溝是在陳縣以東的,項羽是沿著鴻溝以東南下的。因此,也許所謂的陳下之戰就是垓下之戰了,垓下就是在陳縣附近一個不知名的小地方。
當劉邦大軍把項羽圍困在垓下或者說陳下,項羽在這里上演了“霸王別姬”。根據《項羽本紀》的記載,當時項羽腦子里已經充滿了絕望,身心疲憊,聽見楚歌,就認為劉邦盡占楚地。項羽的心情極為苦悶,夜里起來,讓虞姬跳舞,自己在一旁唱了一首短歌。

一天夜里,項羽趁著夜色,率領800騎兵,向南渡過淮河,向江東逃跑了。過淮河后,項羽所率領的人馬減少到了100多人。但走到陰陵縣這個地方,他迷路了,問一個老漢,老漢給他指路讓他往西走,使他陷入泥沼之中。等他折回來向東時,在東城被漢軍數千人包圍。按照常規理解,東城就在今天安徽定遠縣境內。
項羽晚上突圍的時候,漢軍并不知道,天明后,才發覺有一支騎兵向南跑了。劉邦派灌嬰帶著5000騎兵追擊。等到了東城,把項羽圍在了一個小山包上了?!稘h書》記載:項羽被圍的小山包就是潰山。
對于項羽的結局,《史記》記載,項羽被圍困潰山后,他派身邊僅存的28個騎兵,分成4隊從4個方向突圍。后來項羽成功到達了長江邊,正準備過江,漢軍圍上來,項羽走投無路,自刎而死。
項羽死后,漢將王翳得了項羽的頭顱,楊喜、呂馬童、呂勝、楊武各得到項羽身體的一部分,這些人拿著項羽尸身的一部分,回去后因此都被劉邦封了侯。也就是說,項羽雖然是自刎而死,但他的尸體被肢解了。
(據《人民文摘》)