公元前 208年 9月,劉邦率領碭郡兵,并在一路上收容陳勝、項梁部隊的散兵,以曹參為前鋒,進攻東郡取得勝利。一路上無大戰(zhàn),在取得了幾個小戰(zhàn)役的勝利后,劉邦兩攻昌邑未果。正準備再次進攻時,項羽在巨鹿大破秦軍,擒王離、破章邯。劉邦擔心項羽乘勝向關中進發(fā),便也不再與小股秦軍糾纏,轉而揮師向西,率大軍挺進到雍丘與陳留一帶。
在陳留附近,劉邦采納酈食其的計謀,攻取了陳留。至此,劉邦西征的前哨戰(zhàn)取得了成功。攻取陳留使劉邦建立了西征的立腳點,也獲得了大批的糧餉軍械。劉邦一路收編陳勝、項梁殘部和其他義軍,又招攬了大批人才,實力得到大大增強。
劉邦率領部隊占領陳留前,得知北伐的楚軍已解巨鹿之圍,項羽因為巨鹿之戰(zhàn)而聲名大振。劉邦不敢有片刻的懈怠,率領大軍繼續(xù)向西挺進,這樣做是為了首先進入關中。時至 3月,劉邦大軍由陳留之路北上準備進攻開封。秦將率兵守城,城堅而難以迅速攻下,劉邦遂率軍轉向西進,與秦將楊熊軍會戰(zhàn)于白馬,又戰(zhàn)于曲遇,俘虜了秦軍司馬及御史各一人。楊熊戰(zhàn)敗后,退回三川郡。秦二世胡亥遣使將楊熊以征戰(zhàn)不力之名斬殺。劉邦沒有直接進攻滎陽,而率軍改攻潁川郡。 4月,劉邦率大軍攻克了潁川郡,派親信張良主持潁川郡軍政大事,基本收復前韓國屬地。此時趙軍大將司馬卬在黃河對岸企圖渡河搶先入函谷關。劉邦為阻止司馬卬而率大軍北攻平陰,斷絕趙軍渡河之路,阻止其向關中進展。劉邦阻止趙軍渡河后,轉而率大軍前往洛陽,在洛東與秦軍發(fā)生了激烈的戰(zhàn)斗,遭受了一些損失,不得已退到陽城,轉向南陽郡前進。劉邦大部隊南移,韓王成奉命留守陽翟,掌管前韓國屬地,張良則率部分軍隊隨劉邦繼續(xù)前進。 6月,劉邦與南陽郡守軍大戰(zhàn),擊潰對方的抵抗,攻占了整個南陽郡。南陽郡守將退走宛城,據城固守。劉邦久攻宛城而不克,急于引兵西進。張良則建議說,雖然急于入關的心情可以理解,但是秦兵尚眾,而且往往據險自守。如若貿然置宛城守軍于不顧,將來很有可能受到秦軍的前后夾攻。