西魏大统三年(东魏天平四年,公元537年)八月十四日,为了破解已经长达两年且还在持续的饥荒,宇文泰率领李弼等十二将实施东伐,以北雍州刺史于谨为先锋。于谨率军朝东魏盘豆(河南省灵宝市西)杀来,东魏守将高叔礼固守不降,被于谨一举攻克,东魏一千余人被俘。八月二十五日,西魏军队包围了弘农。宇文泰命令达奚武带着两名骑兵前去侦察,与东魏骑兵遭遇,双方交手,达奚武三人斩杀了六名东魏士兵,俘获了三人,安全回营。八月二十七日,西魏军队攻克弘农,活捉东魏陕州刺史李徽伯,生擒八千名东魏士兵。
宇文泰占领弘农后,饥肠辘辘的西魏将士们总算找到了吃的。尚书左丞杨标对宇文泰说自己的父亲杨猛曾担任过邵郡(治所即在白水县,山西省垣曲县)的白水县令,结识当地的豪强,请求北渡黄河说服他们献出邵郡,宇文泰同意了。杨标与当地豪强王覆怜等聚众起兵,斩杀了东魏邵郡太守程保及四名县令,宇文泰遂任命王覆怜为太守。宇文泰又派遣使者渡河说服山西西南部归附东魏的各个城堡,半月之内,不少城堡都归顺了西魏。东魏东雍州刺史司马恭镇守正平(山西省临汾市),西魏司空从事中郎裴邃(与南梁名将同名,并非同一人)打算进攻,司马恭弃城而逃,宇文泰遂以杨标为行正平郡事(代理正平太守)。
为配合宇文泰的进攻,本年九月,柔然也发兵南下进攻东魏,前锋一直进抵三堆(山西省静乐县),直接威胁到了晋阳的安全。高欢亲自率军迎战,将柔然军队击退。柔然军队牵制了高欢的主力,让他无力兼顾南面,这也是山西西南部不少处于半独立状态的城堡纷纷归附西魏的原因。
令高欢恼火的是∶小小的宇文泰竟敢主动对自己发起进攻!这大大出乎他的意料,也让他勃然大怒,击退柔然之后,高欢即部署对西魏进行大规模的讨伐。他组织起空前强大的兵力,决心一举将宇文泰消灭。
闰九月月初,东魏丞相高欢亲自率领二十万(《周书》称十万)大军从壶口(山西省吉县西南七十里)直插蒲津,另外命令高敖曹率领三万人马从黄河以南向西进攻。宇文泰率领的部队不足一万人,一直在弘农征收粮食,已五十余日了,听说高欢的大军将要渡河,遂撤离弘农,率领主力西上,进入了潼关,宇文泰西去后,高敖曹遂率部包围了弘农。
在此次西伐之前,高欢曾就此战征求行泰州事段荣(高欢连襟)的意见,段荣坚决反对。此时,高欢右长史薛瑕也对高欢说:"西魏连年饥荒,没有粮食吃,因此,宇文泰才冒死前来,进攻我陕州,目的不过是想抢夺粮食。现在,司徒高敖曹已经包围了陕城,西魏人抢夺的粮食运不出去,只要在交通要道上部署重兵,不与敌人正面交锋,等僵持到麦收季节,西魏军民肯定会全部饿死。届时,元宝炬和宇文黑獭自然归降,请求大王不要西渡黄河。"
侯景也劝谏道∶ "这次兴兵,我军的人数非常多,万一失利,后果难以控制。不如将部队一分为二,相继前进。前军如果获胜了,后军可扩大战果;一旦前军失利,后军再进行增援。"鉴于上次分军、窦泰被杀的教训,高欢这次矫枉过正,再也不敢分军了,加上如今国内人心浮动,高欢对手下的将领更不放心,因此,他拒绝了二人的建议,遂率部从蒲津渡过了黄河。
宇文泰率领的那不足一万人马也来到了渭河南岸,西魏朝廷征调的郡县部队尚未抵达。宇文泰打算进击高欢军,众将均以众寡不敌,请求等到高欢继续西进之后,进一步观察形势后,再作决断。宇文泰说∶"一旦等到高欢进抵长安附近,人心必定要引起骚动,现在,趁着他刚刚从远方来到,可予以迎头痛击。"遂下令在渭河之上建造浮桥,命令士兵们携带三日的军粮,率领轻装骑兵毅然渡过了渭河,留下辎重部队在渭河南岸随着北岸的部队一起向西移动。
十月一日,宇文泰率领的西魏军在渭河北岸推进到了沙苑。
在北洛河以南、渭河以北的这片沙漠里,时年四十二岁的高欢将与三十三岁的宇文泰展开一场生死对决。此时,东魏军在沙苑以西、以北地区,并逐渐向西移动,而宇文泰的西魏军则依靠渭河北岸,在沙苑的以东、以南地区,随着高欢军逐渐向西前进,两军相距六十里。宇文泰手下众将都非常担心,唯独宇文深向宇文泰表示祝贺。宇文泰询问缘由,宇文深回答∶"高欢治理河北,深得民心,如果他固守那里,确实难以攻取。如今,他竟然率部渡河前来,违背大家的意愿,只不过是高欢认为窦泰被杀是奇耻大辱,所以,他才刚愎自用,拒绝采纳众将的意见,执意而来,这就是所谓的愤怒之兵,可以一举将其擒获。这实在是显而易见的事,为什么不祝贺呢!我请求给臣一个符节,调派王罴的军队切断东魏的退路,将一举全歼他们。"
宇文泰派遣达奚武前去侦察,达奚武率领三名骑兵,身着东魏军军服。天黑时,达奚武四人来到距离高欢军营一百步的近处,他们下马偷听到了东魏军的口令,而后,四人又骑上战马,装作夜晚的巡逻队,从容在东魏各个军营里穿行,遇到违规违纪的东魏士兵,他们还往往一顿毒打。达奚武等人完全掌握了东魏军的虚实后,又安全回到了自己军中,向宇文泰详细作了汇报。
高欢听说宇文泰率军前来,即率领大军前来。侦察兵报告说高欢率部前来了,宇文泰遂赶忙召集众将商议对策。李弼说∶"敌众我寡,不可在平地与敌人决战,从这里往东十里之处,是渭河的拐弯处,我军可以提前占据那里,以等待敌军的到来。"宇文泰采纳了他的意见,遂率部向东撤离,到达渭河拐弯处后,西魏军背靠渭河东西列阵,李弼为右翼司令,赵贵为左翼司令,命令将士们藏匿于芦苇之中,约定听到鼓声后一齐出击。
吃晚饭的时候,东魏军尾随来到了渭河拐弯处。
东魏都督斛律羌举说∶ "宇文黑獭纠集穷凶极恶的死党,,谁强谁弱,他们也一清二楚。现在,我揣摩他的想法就是要与我决一死战,斗个鱼死网破,这就如同走投无路的疯狗,弄不好也会咬人一口,况且,渭河拐弯处十分泥泞,无法发挥战力。不如放慢步伐,在此地与之相持,而分出一支精锐骑兵奔袭长安,长安空虚,可不战而克。攻克了他的根据地。宇文黑微无处可去。他的人头t也将很快高悬于我辕门之上。"
高欢听到分军,他本能地否定了斛律羌举的意见,又反问大家道∶"纵火焚烧芦苇,你们看怎么样?"侯景却说∶"应当生擒宇文泰向百姓展示,假如纵火烧死了他,谁能相信?"高欢有些犹豫,产生了暂时看一看的想法。此时,猛将彭乐大声请求与宇文泰决一死战,他说∶ "我众敌寡,一百个人打一个,这根本不会出现意外!"高欢遂决定一战。
东魏军继续向东前进。
当他们发现西魏军人数非常少后,东魏各路军争先恐后地朝西魏军扑来,队列大乱。双方军队将要接触,宇文泰即擂响了战鼓,提前埋伏在芦苇从中的西魏伏兵顿时从四面八方杀了出来,于谨等六军与东魏军缠斗,李弼等人率领六十名骑兵从左翼朝东魏军拦腰杀来,把东魏军队一分为二,遂大破东魏军。东魏猛将彭乐趁醉深入西魏阵中,被西魏兵用长矛刺中腹部,肠子从伤口流出,彭乐把肠子又塞回腹中,剩下一段肠子塞不进去,他一刀截断扔掉,继续与西魏军厮杀,但东魏军在西魏军的打击下,最终失利,彭乐只好退去。
高欢打算收集残兵败将继续死战命张华原拿着花名册到各营点名,却没人答应。张华原回来后,对高欢说∶"大家都逃散了,各营都空了!"高欢还于心不甘,不想离去。斛律金说∶"人心已经离散了,不能再用了,应当火速撤回河东。"高欢坐在马上没动,斛律金扬鞭打马,高欢这才飞马绝尘而去。当晚,高欢来到黄河渡口,渡船离岸很远,高欢换乘骆驼,才上得船来。
沙苑之战,西魏军临阵斩杀了六千名东魏士兵,俘虏两万余人,而后,宇文泰挥军乘胜追击,一直追到黄河西岸,前后共计俘虏了七万名东魏士兵,他从中选拔了两万壮丁,剩余的全部放回,又缴获武器、铠甲十八万件。都督李穆说∶"此战高欢已经破胆了,渡河追击,可以生擒他!"宇文泰不从,遂回师渭河南岸休整。这时,征召的各郡县的部队才来到,宇文泰遂命令每人在沙苑战场上种下一棵柳树,以展示战功。
侯景对高欢说∶"黑赖刚刚取胜,心高气傲,肯定毫无防备,我请求率领两万精锐骑兵(《南史》称侯景请求数千骑兵),径直入关,必定能将其擒获。"高欢征求妻子娄昭君的意见,娄昭君说∶"假如真是如此,他侯景岂有回来的道理!得到了黑獭却失去了侯景,又有什么好处呢!"高欢遂拒绝了侯景的请求。负责进攻弘农的高敖曹在得知高欢在沙苑惨败后,也从弘农撤离,回到了洛阳。