公元前298年春,楚将昭雎奉楚王之命领兵十万攻打巴蜀,司马错率军迎战。半月之后,田文率领齐魏韩三国大军直扑宜阳,开始攻打被秦人夺取的韩国宜阳旧地。四十万大军一边切断了秦人救援的道路,一边围住几个小城池狂攻猛打,韩人更是奋勇杀敌,不到半月,连下数城,为攻打函谷关扫清了道路,解除了后顾之忧。
田文率三国联军在函谷关外十里扎营,对外宣称四十万大军讨伐暴秦,秦国上下为之震动,秦王以甘茂为先锋,领兵三万出关迎战。匡章采用硬碰硬的死拼战法,秦兵虽然骁勇善战,但也占不了多大便宜,双方激战几个来回,都付出了极大的伤亡,甘茂见势不妙,只得退守函谷关内,坚守不出。
联军在函谷关前摆出了上百架投石车,一连几日猛烈攻打函谷关,但丝毫不见效果。匡章一边继续攻打函谷关,一边让楚国从南边开始攻打武关。芈月担心战局有变,不得不将司马错从巴蜀调了回来。司马错留下庶长奂领兵十万应对昭雎,自己率领五万大军从巴蜀赶了回来。
司马错到了咸阳,听闻联军只在函谷关和武关攻打,河东方向却不见动静,于是向秦王建进言道
“武关和函谷关易守难攻,武关身后有蓝田关,函谷关身后有潼关,匡章乃世之名将,如今舍易求难,恐怕意在河东!”
“将军言之有理!寡人欲派庶长领兵五万加固河东防守,将军以为如何?”秦王道。
“如此甚好!大王可派出探子前往河东方向,密切留意对方行军动向!”司马错道。
几日之后,探子回报,在安邑城中城外发现了魏军主力。安邑是魏国城邑,与河东毗邻,司马错所料不错,田文和匡章的确意在河东。田文将魏国精锐魏武卒尽数放在了安邑城内,准备用魏人攻打昔日被秦人夺取的魏国河东故地。
安邑城中魏军出动之前,匡章加大了对函谷关的攻击力度,意在疲劳对方守城将士。这一日深夜,田文拿出了他准备好的第一个杀手锏——飞鸢战车。夜深人静之时,十架飞鸢战车载着二百名士兵突然飞过函谷关第一道城墙,降落在城关内。昔日秦人从魏人手上得到函谷关后,在原来的基础上又修了一道城墙,形成了内外双墙城关。第一道城墙实际上是一条长城,沿着山体形成了一道极长的防御工事,第二道城墙主要是用来屯兵和办公用的,主要防卫还是依赖于第一道城墙。飞鸢战车降落在两堵关墙中间,大部分秦人还没反应过来的时候,十架战车有九架放下人之后又立即飞了回去。
这二百名士兵都是精挑细选出来的以一当十的角色,将迎上来的秦兵一一格杀,立即向城门口冲杀了过去。城墙外面,突然间也是杀声震天,齐兵立即开始了攻城。返回的九架飞鸢战车又带了一批人飞进了关内,向城门冲杀过去。
齐兵犹如神兵天降,秦人始料不及,抵挡不住齐兵的内外夹击,很快被齐兵夺取了城门。城门一开,齐兵蜂拥而至,双方在城上城下杀得血肉横飞,尸体堆了一层又一层,很快秦人不敌,只得退守至第二道城墙。
秦兵从第一道城墙的两头向中间杀来,上来的齐兵在两头排起了盾牌和长枪迎战。齐兵源源不断涌上墙头,下面的齐兵有的从攻城梯上爬了上来,有的在底下射箭,秦兵不敌,步步后退。匡章将韩弩兵调集至已经夺取的第一道城关墙头,向对方第二道城墙上的秦兵发射出一阵阵箭雨,秦人死伤无数,尸体堆满了墙头。
天亮之时,齐军夺取了第二道城墙关口,城内城外尸体堆积如山,血流成河,惨不忍睹。
函谷关破,咸阳城上下为之震惊,秦王急人手增援函谷关。齐军占据了函谷双墙关隘,一边从两边的山道杀过去,一边从中间狭长的函谷通道杀过去,但无论山道和通道,都难以行军,无法大规模进兵。齐人无法大规模进兵,秦人也不能大规模