韩王成率军前来会合,刘邦就留他守卫阳翟(今河南禹县),牵制河南秦军,自己则与张良等人进攻南阳郡,击败秦将吕齮。吕齮退守宛城(今河南南阳),不敢出战。刘邦急于进入关中称王,打算绕过宛城,却被张良劝阻。于是刘邦假意放弃宛城,却于半夜突然掉头杀回。吕齮自知难敌,急派部下陈恢去联络刘邦,说如果允许吕齮投降,并封他为侯,他就愿意打开城门。心急如焚的刘邦立刻封吕齮为殷侯,封陈恢为千户,合并宛城秦军继续西进。
有了吕齮的榜样,丹水(今河南淅川西)、胡阳(今河南唐河南)、析县(今河南内乡西北)、郦县(今河南内乡东北)等地的守将纷纷投降。再加上刘邦军纪律严明,“所过毋得卤(通掳)掠”,因此没遭受多大抵抗就顺利抵达并且攻克了武关。
就在刘邦一路直进的同时,项羽在巨鹿大战中也取得了辉煌的胜利。当时王离率三十万大军包围巨鹿,齐、燕、楚等诸国救兵虽然赶到,却都只敢远远观望,坚壁固守,不敢与秦军接战。楚将宋义驻扎在安阳(今河南信阳西南),“饮酒高会”46天,不肯前进一步。项羽大怒,遂矫诏杀死了宋义,自封为假上将军,准备攻秦救赵。
秦二世三年(前207)十二月,项羽渡过漳水,冲向秦营。为了向士兵展示有进无退的决心,他下令砸烂饭锅,凿沉渡河的船只——这就是成语“破釜沉舟”的由来。楚军以英布和蒲将军为前锋,项羽统率主力,经过9次激战,杀死秦将苏角,俘获王离,终于解了巨鹿之围。项羽的威名从此如日中天,各国兵马全都归他统一调配,尊其为“诸侯上将军”。
巨鹿之战后,项羽乘胜追击,又在棘原(今河北巨鹿西南)再次大破秦军,章邯恐怕逃回咸阳也难免死罪,干脆就投降了项羽。然而项羽虽然会打仗,却不懂政治,并且心狠手辣。当年十一月,他竟然在新安(今河南渑池东)一夜坑杀秦国降兵20余万!刘邦之宽仁,和项羽之残暴,就此形成鲜明对比。