在项羽无暇西顾的时机,刘邦以关中为根据地一步步扩大自己的地盘,而对项羽的地盘一步步的蚕食。“三月,汉王从临晋渡……下河内、虏殷王,置河内郡。南渡平阴津,至洛阳。”一路东进。此时项羽杀义帝的消息传来,刘邦没忘记加以充分利用,他发信到诸侯:“天下共立义帝,北面事之。今项羽放杀义帝于江南,大逆无道。寡人亲为发丧,诸侯皆缟素。悉发关内兵,收三河士,南浮江、汉以下,愿从诸侯王击楚之杀义帝者。”项羽成为大逆不道的窜逆之臣,只有自己才是真命天子,为进攻都城,夺取全国做好舆论准备。
公元前205年夏,刘邦率军攻入项羽都城彭城。
第三次机遇,楚河汉界已定,各自撤兵回原地。刘邦突然回师击项羽军,项羽终致垓下之围,全军覆灭。
刘邦攻下彭城,项羽闻之,慌忙丢下齐国,从鲁出胡陵,至萧,与汉大战彭城灵壁东睢水上,大破汉军,并取汉王的父及妻子于沛,置于军中以为人质。刘邦溃败,退出彭城,率数十骑逃到荥阳、成皋一带。前204年,项羽又进击刘邦,占领荥阳、成皋,刘邦节节败退。刘邦虽然在正面战场失利,但是其部将韩信在北方抄项羽后路,连连获得胜利,占领赵地。同时,刘邦又派人劝九江王英布降汉,共击项羽。萧何又从汉中征发兵丁补充军队,使刘邦能重整旗鼓,继续战斗。
前203年,双方进入相持阶段。韩信又南下攻占齐地,彭越为汉守魏地,时出游兵断楚粮道。项羽腹背受敌,退兵广武(河南荥阳北),准备与汉决一死战。但刘邦按兵不动,项羽因后援不继,不敢与刘邦作持久战,只得与汉讲和。约定中分天下,划鸿沟为界,其东属楚,其西属汉。楚放回刘邦之父及妻吕雉、子刘盈、女儿鲁元公主等。约定以后,项羽罢兵东归。
项羽撤兵,刘邦也要引兵而西。此时的张良、陈平向刘邦献计:楚兵疲惫,粮食已尽,这是上天赐予的灭亡楚的大好时机,不如趁机而遂取之。如果今天失去追击的机会,就是所谓“养虎自遗患也”。于是,刘邦决定调转军队回头向东,乘胜追击,使项羽没有喘息之机。
公元前202年,刘邦会同诸军(许诺自陈以东傅海给齐王韩信,睢阳以北至谷城给彭越),约40万兵力,全力进击,将项羽紧紧包围。项羽连战失利,边战边退。韩信从齐国起行,刘贾的部队从寿春和他同时进发,屠戮了城父,到达垓下。大司马周殷叛离楚王,以舒县的兵力屠戮了六县,发动九江兵力,随同刘贾、彭越一起会师在垓下,逼向项王。(韩信乃从齐往。刘贾军从寿春并行,屠城父。至垓下。大司马周殷叛楚,以舒屠六,举九江兵,随刘贾、彭越皆会垓下,诣项王。)
项羽在四面楚歌声中溃散而逃,最后在乌江自刎。
由上可见,刘邦与项羽对客观机遇的运用,完全相反。刘邦不断地运用项羽的失误给自己造成的机遇,而项羽却不会运用刘邦给他的机遇。这两人实际上是相辅相成的,没有项羽的失误绝没有刘邦的成功。但是机遇的运用也遵循必然性的规律,项羽是六国旧势力的代表,而刘邦是新生的农民起义力量的代表,项羽的失败又是必然的。刘邦成为中国历史上由农民起义军的领袖而为皇帝的第一人,绝非偶然。