正当项羽在钜鹿(今河北省平乡县)消灭秦军主力的时候,刘邦率领的西进起义军也顺利地取得进展。汉王元年(公元前206年)十月,刘邦的军队打进关中,占领了秦朝都城咸阳。刘邦是个很有政治眼光的人,知道当时的人民希望什么,厌恶什么。为了收买人心,他很注意管束部下,安抚百姓。他下令封闭了咸阳的宫门、府库,严格禁止部下取用宫室里的珍珠宝贝。他驻军咸阳城外,召集关中父老,对他的部下约法三章:杀人的处以死刑,伤人的和偷盗的要按照情节轻重给以处罚。他还宣布废除秦朝的一切严刑苛法。刘邦的这些措施,受到关中人民的热烈欢迎。一个月以后,项羽的大军来到函谷关(今河南省灵宝县西南)。他见刘邦得到楚怀王的支持,要作关中王,十分生气,亲自指挥40万大军破关而入,把军队驻扎在鸿门(今陕西省临潼县东)。从此,刘、项的矛盾尖锐起来了。
这时候,刘邦只有10万人。项羽仗着兵多将广,打算消灭刘邦,独占关中。刘邦想要抵抗,又怕打不过项羽,只好采纳张良的建议,亲自去向项羽谢罪。项羽在鸿门设宴招待刘邦。在宴会上,项羽的谋士范增示意项羽杀掉刘邦,项羽迟疑不决,刘邦便借故逃脱了。这就是历史上有名的“鸿门宴”。
几天以后,项羽领兵进入咸阳,杀了秦王子婴,搜罗了无数奇珍异宝,虏掠着大批妇女,放火烧掉秦朝的宫殿,然后回兵东去。人民对项羽的这些做法大失所望。项羽分封许多拥兵割据的六国旧贵族为王;封刘邦为汉王,让刘邦从关中地区迁到汉中和巴蜀。项羽自称西楚霸王,地位最高,实际上要指挥一切诸侯王。项羽的分封,违反了当时人民渴望统一的愿望,非常不得人心。因此,刚分封不久,战争就打了起来。齐的旧贵族田荣自称齐王,项羽亲自领兵到齐(今山东省)去攻打田荣,刘邦便趁机重新占领关中,楚、汉战争的序幕拉开了。公元前205年四月,刘邦联络诸侯军56万,挥兵东进,占领了楚都彭城(今江苏省徐州市)。