宇文泰不解,问他何故发笑。宇文深答道:“高欢在河北,深得人心;他若是老实待着,消灭他并不容易。如今孤军渡河,深入我们的地盘,他的士兵恐怕也有所不愿吧。究其原因,高欢是要报窦泰被杀之仇,刚愎自用,含愤前来,这叫‘忿兵’,一战可擒。道理再明白不过,为何不道贺呢?”
宇文泰大喜,下令各军整装迎敌。第二天清晨,高欢探知西魏军的位置,大军从许原浩浩荡荡开来。李弼向宇文泰献计:“敌众我寡,不可平地列阵。沙苑以东十里有一处渭水拐弯处,俗称渭曲,三面环水,芦苇丛生,我军可先埋伏在那里,以待高欢。”
宇文泰依计而行,移军渭曲(所以此战也叫渭曲之战),并分出东、西两翼,李弼指挥西翼方阵,赵贵指挥东翼方阵,背水伏下口袋阵,相约以鼓声为号令。
傍晚时分,东魏大军来到渭曲。都督斛律羌举说:“芦苇丛深泥泞,不利于我军作战,不如远远相持,分拨精锐骑兵偷袭长安,端掉宇文黑獭的老巢,叫他不战而败。”
斛律羌举的主意很毒,然而高欢一心报仇,并未发表意见。他望着芦苇丛若有所思:“放把火烧死敌军,怎么样?”
侯景不同意:“应当生擒宇文黑獭以告天下,一把火烧了,无法分辨尸体,谁会相信!”(还没打就想着认尸的事了,东魏军中一片乐观情绪)
镇兵出身的都督彭乐盛气凌人,请缨决战道:“我众敌寡,一百个抓他一个,还怕打不赢?!”
高欢深受鼓动,便以全军猛攻渭曲,孰料一头就撞进了西魏的口袋阵。渭曲的东、西、南三个方向都是伏兵,北面的入口又被东魏军前呼后拥的大队人马阻塞,士兵们有进无退,动弹不得。茂密的芦苇做了西魏士兵最好的掩体,东魏士兵看不清敌人的数量,一个个排队上门送死。
时机成熟,宇文泰亲自擂起战鼓。西魏士兵挥舞兵器,喊声震天,于谨等各军从正面扑了上来。西翼的李弼身先士卒,率领麾下六十多人的铁骑,横向冲入东魏阵中,把高欢大军截为数段。李弼的弟弟李檦身材瘦小,却异常勇猛,骑在马背上犹如隐身人一般,斩杀敌人不费吹灰之力。东魏士兵惊恐万分,远远见了他便大呼“快躲!”乱成一团。
两军杀得天昏地暗,直至深夜还未罢休。东魏阵中的彭乐被刺破肚腹,肠子外流,他把肠子塞入腹内,回身续战。西魏那边的将军耿令贵杀得遍体通红,全是敌兵的鲜血,宇文泰也不禁欷歔。
东魏士兵越战越少,高欢想要收兵再战,却完全指挥不了混乱的兵势,各营军士死散一空。高欢惆怅半晌,还是不愿退兵(十几万大军就这么毁在沙苑……)。大将斛律金劝道:“如今兵心离散,不能再打了,赶快回河东吧!”连喊了几声,高欢仍在马上发呆不语,斛律金挥鞭打马,才强行拖走了高欢。黄河岸边无船可渡,部将为高欢找了一匹高大的骆驼,涉到河中,才有渡船靠近,狼狈逃往东岸。弘农方面的高敖曹听说高欢大败,也退回了洛阳。
宇文泰追到河边,见高欢远去,便停止追击。他从东魏俘虏中留下两万多士兵,其余全部释放(僧多粥少,困难时期侥幸取胜,宇文泰已经相当满足,多余的士兵只能放回去便宜高欢了)。西魏军回到渭水南岸,几天前所征的各州军队正好赶来集合,宇文泰让士兵到战场上每人种一棵柳树,以纪念这场来之不易的胜利。
沙苑之战,西魏军以一敌十,歼灭和收编东魏军八万以上,所获粮草器仗不计其数。弱小的西魏政权得以巩固,宇文泰受封柱国大将军,十二员大将加官晋爵。高欢在小他十一岁的宇文泰面前,大栽了跟斗,此后再也没能踏足关中。