公元前202年十二月,刘邦、韩信、刘贾、彭越、英布等五路大军在垓下(今安徽灵璧南)基本完成了对10万楚军的合围。刘邦任命韩信为联军统帅,指挥大军作战。韩信命刘贾、英布军自南将楚军外围出路全部封闭,命彭越军自北封闭通路,韩信亲自率军30万与刘邦本部军主力合成一股,向困守垓下的楚军发起进攻,展开决战。
当时的情况,楚军处于绝对劣势:西楚国位于长江以北的全部土地均已失陷,10万楚军成为绝对的孤军;楚军缺粮已经几个月,士兵饥饿,军队根本没有半点补给;汉军联兵约40万以上,且精力饱满、粮食充足、士气旺盛,而项羽孤军10万,连续久战疲惫,决战之时已是十二月的寒冬,而楚军刚从广武前线上撤下来,未经补给,多为穿着夏秋季的装备,寒冷饥饿,士气溃散;汉军分五路有秩序推进,先占楚土,再行合围,步步为营,包围圈完善,楚军难以发动突然性的反攻;楚军离江东五郡距离遥远,即使冲破包围圈,也很难在汉军的追击下及时回到己方领土,可以说是“突围无效”。
在这样的情况下,韩信30万主力与刘邦本部军合兵一股,向盘踞在垓下困守的楚军发起了最后的进攻。韩信将主力大军排出了这样一个阵形:韩信亲率30万大军居中,为前锋主力;将军孔熙率军数万在韩信军左方;陈贺率军数万在韩信军右方;刘邦率本部主力尾随韩信军跟进,将军周勃率军断后。项羽方面,楚军既不能守也不能退,后勤断绝,无粮而守,无异于坐以待毙。
韩信率本部军先行向楚军发动挑衅性进攻,项羽立刻率楚军发动中央突破作战,直指韩信本部。项羽冲锋在前,楚军以骑兵在前、步兵在后随其冲锋。韩信立刻命令大军后撤,以30万大军为屏障掩护指挥部和刘邦的本部人马向后退去。汉军且战且退,楚军则是继续孤注一掷地疯狂突击,项羽本人更加是一马当先,直杀向韩信本人。当韩信以前阵为屏障掩护刘邦军回撤退避的同时,孔熙、陈贺所率的左右两军也自楚军左右两侧进行着迂回机动,威胁楚军侧翼。
经过半日厮杀,项羽没能突破汉军阵线,楚军队形越来越散、越拉越长,已经渐渐失去了紧密的队形和互相之间的配合。战至下午,汉军中军一退再退,左右两军迂回急进,终于完成了前后夹击之势。汉军左右军随之投入了对楚军后方侧翼的进攻,以紧密的阵形两面压来,迅速合围了落在后面的楚军步兵。楚军将士殊死抵抗,两军官兵绞斗在一起。楚军步兵、骑兵被一分两半,攻势随之被牵制。项羽不得已,只好率残存骑兵回师救援步兵。
这时韩信将刘邦主力以及所剩的全部中军投入反冲击,数十万汉军向楚军发起了前后夹击。项羽见势不妙,立刻率全军向反方向突围,冲开汉左右军的包围,退回营中。此战,楚军阵亡4万余,被俘2万,被打散2万,仅剩不到2万伤兵随项羽退回阵中。随后,韩信率领全军收拢此前被楚军冲散的部队全数压上,彻底包围了楚军大营。此间韩信率兵还歼灭了被打散的2万余楚军,没有给项王收拢散兵的机会。夜晚,韩信命手下士兵唱起楚地歌谣。项羽听见四面楚歌之声,以为楚地尽失,遂告别心爱的虞姬,率领800子弟兵突围南走,被汉军追至乌江(今安徽和县东北),自刎身亡。
垓下之战,汉军积极调集援兵,多路围攻,以绝对优势兵力全歼楚军,创造了中国古代大规模追击战的成功战例,结束了秦末混战的局面,统一了中国,奠定了汉王朝400年基业。