就在杨熊被二世斩杀之后,刘邦听说赵将司马卬准备渡过黄河,进入函谷关,这可把刘邦急坏了,他担心自己落后于他人,便率军急进。他先北攻平阴(今河南孟津北),破坏黄河渡口,让司马卬无法渡河。随后改攻洛阳,希望从洛阳方向入关,然而洛阳守备森严,一时不能攻克。刘邦又改从轘辕山方向进军,轘辕山因地势险要,迂回曲折,十分难行,所以秦国未安置守军。刘邦率军艰难地越过了轘辕山。轘辕山一过,刘邦军队便如下山猛虎一般,一路连克十多座城池,最后攻到了南阳。
南阳郡守叫齮,史籍中只有名而无姓。他听说刘邦大军来犯,便率军到犨县东边进行阻击。刘邦一路西征,部众越来越多,将士越来越勇,已经不是一般秦将能轻易抵挡了。所以,郡守率军一交战,便立刻势劣,败阵而逃,躲进宛城固守。刘邦急于入关,随即放弃宛城,继续西征。张良见此,赶紧劝刘邦说,若放弃宛城,前途更加难进。到时前无据,后无守。若得宛城,则后顾无忧。刘邦听从张良建议,决定回师攻宛城,他命令军队偃旗息鼓,衔枚疾走,在一个漆黑的夜晚悄悄包围了宛城,然后放炮攻城。
南阳郡守本以为刘邦已去,此地无忧,不想却被他杀了个回马枪。现在宛城被围得铁桶一样,刘邦攻城又急,郡守无奈,城既不保,留头何用?他竟要挥剑自杀。就在此时,南阳郡守手下的舍人陈恢一把拉住了他,反复劝他死无益处,不如投降刘邦,说不定既能保百姓,又能保身家性命,甚至还可能保住荣华。南阳郡守也是万不得已想到了死路,如今陈恢劝说阻止,又主动请缨去当说客,便随了陈恢的意思。
于是,陈恢到刘邦军前,申明想见沛公,有要事禀报。见到刘邦后,陈恢劝说刘邦纳降南阳郡守,并给其封官,说如此一来可得一宛城,二来可给沿途守将树立榜样,投降者当会越来越多,入关便会轻松很多。刘邦从谏如流,听众陈恢的劝说,纳降南阳郡守,收得宛城,封南阳郡守为殷侯,封陈恢为千户,让他二人继续留守宛城,随即集中宛城兵马,一起西征。
那些秦朝守将听说刘邦义道,果然纷纷主动投降。此后,刘邦西征军几乎没费多大周折,便到达了武关,武关兵不强将不勇,不值刘邦大军几个回合的攻打,武关一战即平。