西与秦将杨熊战白马,又战曲遇东,大破之。杨熊走之荥阳,二世使使者斩以徇。南攻颍阳,屠之。因张良遂略韩地轘辕。
——《史记·高祖本纪》
秦二世三年(前207年)三月,刘邦在攻取陈留,获得大量粮草补给后,郦食其的弟弟郦商,亦率四千余人前来投效,刘邦遂以郦食其为广野君,以郦商为将,率兵西进,与启封的曹参会合,合攻启封赵贲统率的秦军。
还不等启封城破,刘邦得知又有一路秦军自北而来,为了防止陷入腹背受敌的不利境地,刘邦命曹参等人继续围攻启封,自己则率领其余军队北上迎击这支秦国援军。
前来增援赵贲的不是别人,正是此前戍守荥阳的杨熊。杨熊本在坚守荥阳,在得知赵贲等人兵败东郡后,便迅速抽调兵力前去增援,结果等他赶到东郡,才发现东郡守军已经全被肃清,杨熊已经败退启封。
若是启封被破,刘邦便可直接西进攻打荥阳一线,如此不仅杨熊部的退路和后勤补给将被切断,而且荥阳一旦被破,函谷关也会直接面临威胁。为了避免荥阳有失,杨熊不敢怠慢,连忙率军向启封进军,在增援赵贲的同时,确保荥阳外围的安全。
刘邦率军北上后,与南下的杨熊军在东郡白马县遭遇,双方大战一场,杨熊战败南撤,向启封县一带撤退,刘邦则率军紧追不舍,并命曹参自启封出兵北上截击。
杨熊在率军撤退至曲遇(今河南中牟县东)东部、启封北部一带时,陷入刘邦和曹参两军夹击之中,再度遭遇惨败,曹参俘虏秦国司马及御史各一人,夏侯婴俘虏六十八人,收降士兵八百五十人,并缴获官印一匣。
前后两度战败的杨熊,已经无力再增援启封的赵贲,只能率领残部向西退入荥阳。深知荥阳一带驻守有秦军重兵的刘邦,这才放弃追击。不过,刘邦虽然放过了杨熊,但杨熊却并未能逃过一死,秦二世胡亥在得知前线战败后大怒,派遣使者前往荥阳向杨熊问罪,杨熊百口莫辩,被使者所斩杀。
在曹参自启封率军北上,与刘邦夹击杨熊的同时,困守启封城的赵贲,在发现城外军队有所减少后,认为机不可失,于是迅速召集城中秦军,亲自率军突围。
然而,曹参对此早有预料。曹参在率部北上之时,便担心赵贲会趁机突围,他分析赵贲突围之后,只有一条路可走,那就是先率兵向北,然后转道向西,撤入三川郡,与荥阳的守军会合。为此,曹参在临走之前,便命樊哙和靳歙埋伏在了启封以北。
果然如曹参所料,赵贲率军冲出启封城后,便立即率部向北疾驰,结果还不等他冲出多远,便遭到了樊哙和靳歙的阻击,两人各斩“侯一人”,赵贲军溃散而逃,樊哙和靳歙随之反攻启封,樊哙先登,启封陷落。
至此,秦国在砀郡的守军基本被清除干净,只要继续向西攻破荥阳一线,消灭三川郡的秦国守军,秦国在函谷关以东的守备力量,便将被一扫而空,而刘邦便可直面函谷关了,只要再攻破了函谷关,便可杀入关中,达成与楚王熊心“先入关中者王之”的约定了。
可是说起来简单,做起来却并不容易。虽然自三川郡进攻函谷关,陈胜的张楚政权此前已经有过成功案例,即用部分兵力牵制荥阳秦军,另派大军绕过荥阳直取函谷关。不过这个方法,显然不符合刘邦的实际情况,因为他手中根本没有那么多兵。
可是如果不进行分兵,面对荥阳、成皋一线的秦国重兵,刘邦根本没有把握正面攻克这道防线。
刘邦心里很清楚,自己此前之所以能够轻松横扫东郡和砀郡的秦军,只因那些秦军多为地方守军,这些地方守军甚至有很大一部分是秦国于当地招募而来,本就没有替秦国拼死一战的决心,战斗力自然不算太强。
荥阳、成皋一线则不然,作为通往函谷关的门户,乃是秦国防守的重点。在章邯将周章赶出关中之后,为了避免函谷关再度被破,秦廷便开始不断征调军队,加强函谷关和三川郡的防御力量,尤其是函谷关和荥阳两地的防守,更是防御的重中之重。
荥阳、成皋一线的秦军,不仅兵力和战斗力都远超东郡和砀郡的秦军,而且由于这些士卒基本全都是来自于函谷关以西秦地的秦人,战斗意志也远非那些地方军队可比。
在与麾下幕僚和将领进行了多次商讨之后,仔细权衡利弊,刘邦最终还是决定采用分兵之法。不过,与陈胜当初战法不同的是,刘邦并非是要分兵攻打函谷关,而是先兵分两路夹击荥阳守军,然后再合军攻打函谷关。如此,既解决了荥阳、成皋一带守军的问题,也解决了兵力太少的问题。
具体战略是:先兵分两路,留曹参、灌婴、秦宽等人屯扎启封,防止荥阳守军东出,自己则亲率大军折向西南,绕过嵩山、箕山,经轩辕关进入洛阳盆地,攻占洛阳,切断荥阳秦军退路,再与曹参前后夹击荥阳、成皋一带秦军,将之击败之后,再合军向西攻打函谷关。
秦二世三年(前207年)三月下旬,刘邦以樊哙为先锋,自己亲率大军转向西南,攻入颍川郡。樊哙率军先行攻克苑陵,但在长社遭遇秦军激烈抵抗,刘邦率领大军与樊哙会合后,当即对长社发动猛攻,周勃、郦商先登,攻克长社。
面对刘邦大军,颍川郡秦军认为分兵据守难以抵御,不如集中兵力,毕其功于一役。他们分析后认为,无论刘邦的目的是西攻武关,还是北上攻打轩辕关,颍阳都是必经之地,于是集中全郡守军,于颍阳坚守以待。
同年四月初,刘邦大军经颍阴抵达颍阳,双方爆发激战,或许是由于颍阳抵抗太过激烈,刘邦军伤亡太大;或许是为了确保退路安全,彻底消灭颍川郡守军,刘邦在攻克颍阳后,进行了残忍的屠城。
之后,刘邦于颍阳折向西北,由于颍川郡守军在颍阳已经基本被消灭干净,因此刘邦在没有遇到大规模抵抗的情况下,便轻松经轩辕关突入了洛阳盆地。
就在刘邦进入洛阳盆地,即将攻打洛阳,切断荥阳秦军退路之际,与三川郡隔黄河相望的河内郡,也有一支军队,想要趁机渡过渡河南下进入洛阳盆地,转道向西攻打函谷关,统率这支军队的,便是原赵将司马卬。