公元前204年(汉三年),刘邦在荥阳修筑甬道用以过河取敖地的粮食,项羽军多次侵夺甬道,刘邦军无法取得粮草补充,非常害怕,于是与项羽议和,项羽同意。
鸿沟和议
项羽在范增的建议下,与范增合围荥阳,打算把刘邦消灭。刘邦非常害怕,采取陈平的计策,离间项羽和范增,项羽于是剥夺了范增的权利。范增没有想到项羽竟然会怀疑自己和刘邦有勾结,十分气愤,于是告老还乡,但在途中病死。
项羽将荥阳的刘邦四面围定攻打,刘邦军势非常危急,部将纪信于是引两千军乘黄车假扮刘邦出城,说刘邦愿意投降,项羽赶来见到纪信问刘邦在哪,纪信说刘邦已经逃走了,项羽于是将纪信烧死。
公元前203年(汉四年),项羽攻下荥阳,处死荥阳守将周苛、枞公。而刘邦走宛、叶,派人说服英布背叛项羽,进入成皋。项羽得知后迅速率兵前来攻打,夺下成皋,一路西进。刘邦逃亡巩县,派重兵阻挡,项羽无法挺进。
此时,彭越渡河攻击东阿,楚将薛公兵败身死,项羽于是亲自率军攻打彭越,彭越败走,但成皋却被刘邦趁机夺下。项羽回军与刘邦对峙于广武,相持了几个月。项羽向刘邦单挑,但刘邦不肯,项羽于是派壮士出来挑战,但被楼烦人射杀。项羽大怒,身披铠甲手持长戟来挑战,楼烦人准备射项羽,项羽怒目而视,将楼烦人吓得不敢出来。刘邦听闻后,出来和项羽对话,项羽又向刘邦挑战,刘邦不从,项羽以弩射伤刘邦,刘邦退入成皋。
韩信于河北攻破齐、赵等国,并准备进攻楚国,项羽派大将龙且前往进攻韩信,但却被韩信所破杀, 这时彭越又于上谷城复出,项羽大怒,亲自前往救援,留大司马曹咎原地待守,并告诫他不要出战,只需守住十五日即可。 项羽走后,刘邦军前来挑战,曹咎大怒,引兵渡汜水,刘邦军趁机发动进攻,大破曹咎军。项羽听闻曹咎兵败,引兵而回。这时刘邦军正于荥阳东围攻钟离末,听到项羽回来了,非常害怕,全部退走。
项羽腹背受敌,又粮草不继,于是送还刘邦家眷,与刘邦签订盟约,以鸿沟为界,中分天下。
垓下之战
鸿沟和议后,项羽引兵东归,刘邦却趁这个时候突然撕毁盟约,追击项羽,想要把项羽一举消灭。但和刘邦约定一起出兵的韩信和彭越却没有来。项羽引兵反击刘邦,大破汉军,刘邦于是深沟高壑,坚守不出。
刘邦以加封土地为条件,说动韩信从齐地南下,占领楚都彭城和今天苏北、皖北、豫东等广大地区,兵锋直指楚军侧背,自东向西夹击项羽;梁王彭越率军数万从梁地出发,先南下后西进,于刘邦本部军共同逼楚军后退;汉将刘贾率军数万会同九江王英布、合兵十万,自淮北出发,从西南方发动对楚地的进攻,先克寿春,再攻下城父并将此城军民全部屠尽;而镇守南线的楚将大司马周殷却在此时叛楚,先屠灭六县,再与英布、刘贾会师,随后北上合击项羽;同时,得到关中兵丁补充的刘邦则率本部军二十万出固陵东进;汉军五路大军、合计近六十万之众,形成从西、北、西南、东北四面合围楚军之势,项羽被迫率十万楚军向垓下后撤。
刘邦以韩信引兵三十万为前军,将军孔熙为左翼、陈贺为右翼,刘邦率部跟进,将军周勃断后。项羽引兵十万,先与韩信大战,韩信军失利往后退却,令左右两翼包夹项羽军,项羽军抵敌不住,于是往后撤,韩信趁机反击,项羽军大败,退到壁垒坚守,刘邦乘胜领大军将项羽重重包围。
项羽军在垓下,不但兵少,而且粮草不够,又被刘邦几十万大军包围,于是率领八百骑兵趁夜突围,天亮后,汉军发觉项羽离去,于是灌婴率五千精锐骑兵追击,等他渡过淮河,随从的骑兵只有一百多人了,来到阴陵时,项羽迷路了,他去问一个老农,老农回答:“左“往左去,陷入了一片沼泽,耽误了时间。汉军追了上来,经过一场激战,项羽又往东去,到达东城的一座山上,只剩下了二十八骑,而追击的汉军却有数千人。
乌江自刎
项羽自忖不能脱身,就部下说:“我从起兵到现在已经八年,经七十余战,抵挡我的人都被我攻破,我打击的人都表示臣服,未尝败北,遂称霸天下,现在困于此,不是我不会打仗,而是天要亡我!今日是要决死战了,我要为诸君痛快地一战,必定要胜利三次,为诸君击溃包围、斩将、砍旗,让诸君知道,是天要亡我,非我不会打仗。“于是他分骑兵为四队,此时,汉军围困数重,项羽对他的骑兵们说:“我为你们杀掉对方一将!“于是他命令骑兵们分四面向山下冲,约在山东面会合。项羽大呼驰下,斩杀一汉将。赤泉侯杨喜追项羽,项羽大喝一声,杨喜的人马俱惊,退后数里!项羽与骑兵分为三队,汉军不知项羽在哪队,就也分三队包围。项羽飞驰而出,又斩杀一汉将,同时杀近百人,再会合骑兵,仅损失两骑,项羽问:“怎么样?“骑兵们钦佩地回答:“和大王说的一样“ 。