自己兵力优势却输给了宇文泰,又损失了大将窦泰,高欢心里不服而且痛恨之极,计划发动第二次攻打西魏的战争。第二年十月,高欢为一雪小关之败的耻辱,亲率20万大军攻讨西魏,志在为窦泰复仇。高欢军自壶口(今山西吉县西)经蒲津(今陕西大荔东)渡黄河,过洛水,进屯许原(今陕西大荔南)西,直指长安。宇文泰在东魏大军压境时,亲率近万人自恒农回师渭水南,又在诸州征兵准备迎战。为阻止东魏军逼近长安,乘其远来新至,宇文泰不待州兵齐集,即令部卒在渭水架设浮桥,仅携带三日粮食,轻骑渡过渭水。
此次宇文泰仅万余兵力,要迎战高欢20万大军,敌强我弱形势分明。宇文泰向众将问计,部将宇文深说:“高欢在黄河以北甚得众心,他虽乏智谋,而人皆听命,若是安分守土,要打他还很不容易。如今驱兵西征,让鲜卑人相互攻杀,实非众愿,难以齐心。只因窦泰被斩,又失积粟,丢了面子,含愤而来。这是‘忿兵’,一战可擒。”宇文泰深以为然,当即率精锐轻骑从渭水南岸渡到北岸的沙苑(今陕西大荔县南),距高欢大军60里安营。大将李弼又向宇文泰建议:“敌众我寡,不可平地置阵。此处东面10里有渭曲,可据以待敌。”宇文泰觉得有理,将军队推进10里,背水分东、西列阵,李弼指挥西边方阵,赵贵指挥东边方阵,都埋伏在芦苇丛中,以鼓声为令,操戈待敌。
高欢那边也就战略问题展开讨论。大将侯景提议兵分两路,前军胜则后军乘胜,前军败后军还可救援。宇文泰兵力比头年没有明显增加,侯景思路无疑是非常正确的,分两路兵,每路都足以消灭宇文泰部队,而宇文泰部队绝对没能力在两个方面做到充分防守。高欢过于自信,没有采纳侯景建议。于是双方军队在沙苑渭曲相遇了,宇文泰果然把仅有的两万兵埋伏在渭曲芦苇丛中。高欢的部下提出建议说不在这里和宇文泰纠缠,直接挥兵长安,只要到了长安,这里的两万敌兵立时崩溃。高欢认为当前以是围歼的态势,还不如放把火,把西魏部队都烧死简单。侯景又提出,放火烧死宇文泰,就算成功也找不到宇文泰的尸体,无法宣扬功绩。争论不休间,喝醉了的彭乐发火了,主动提出带人杀入芦苇丛,提宇文泰首级回来。高欢认为这次以多击少乃是必胜之势了,又有彭乐主动请缨,就决定出击。
十月二日申时,东魏大军兵进渭曲,明知西魏兵少,毫不在意,乱嚷嚷往西边方阵闯去,宇文泰见敌军已至,击鼓催战,于谨率兵迎敌,李弼、赵贵伏兵顿起,李弼的铁骑横击东魏主力,将高欢大军截为两段,不能照应。大将彭乐酒醉,一开仗就被敌人重伤,肠子都流了出来,还在力战。结果当然是东魏大败,高欢连夜跨骆驼逃往黄河西岸,抢得船只渡河,其余几乎全军覆没。
沙苑一战,宇文泰虏敌7万,获粮草辎重无数,全胜而归,从俘虏中选留2万人补充军队,其余则全部放回,用以分化高欢。李穆见高欢已吓得魂飞魄散,建议乘胜追击,宇文泰怕高欢反扑,主张“穷寇莫追”,带兵返回渭南。为纪念这次战役,宇文泰命令士兵每人种树一棵,以旌战功。
凭借这场以弱胜强的伏击战,宇文泰既巩固了建立不久的西魏政权,确立了东西魏割据的局面,同时也巩固了自己在西魏政权的主宰地位,为之后北周的建立奠定了坚实的基础。沙苑之战后东魏不再能随意侵入关中,东西魏的主战场转为河东(山西)和河南。
高欢在沙苑战败,直接导致了东魏西魏之间的力量对比和攻防态势的逆转,西魏开始摆脱了被动挨打的局面,开始主动出击。西魏军大捷之后士气高昂,一举攻下了河东的蒲坂和洛阳的金墉城。公元538年,东魏大将侯景夺回金墉,烧毁了洛阳内外大量官寺民居,西魏文帝元宝炬和丞相宇文泰本来要到占领的洛阳去祭扫先帝陵园,见侯景攻打金墉,宇文泰亲率大军前往救援,前军到谷城(今河南新安县东),击杀了东魏前锋莫多娄贷文,侯景见西魏大军来援,撤围引退。宇文泰率轻骑追至河上。侯景北据河桥(今河南孟县西南),南依邙山(今河南洛阳市北),布好阵势,与宇文泰对仗。两军交锋不久,宇文泰坐骑被侯景射中,狂奔不已。都督李穆紧紧跟护在宇文泰身旁。宇文泰被掀下马,左右从人皆散,东魏兵马追来。李穆急中生智,用马鞭抽打宇文泰,骂道:“你这个不中用的东西,你的主子跑到哪里去了,你还在此逗留!”东魏兵听得此言,以为此人只是个无名小卒,就舍下追击旁人去了。待东魏军过去,李穆把自己的马授与宇文泰,与宇文泰逃回营中。
侯景初胜,以为西魏军远去,不会再来。不料西魏大军如潮水般涌至,侯景来不及布阵,就被西魏军打败,士卒溃散,侯景自己也拨马遁逃。只有高昂自恃勇敢,与宇文泰鏖战。高昂是东魏军司、大都督,统七十六都督,在东魏武装力量集团中的地位仅次于高欢,是著名的猛将。结果高昂全军覆没,自己好不容易杀出重围,只身逃往河阳。河阳南城守将高永乐与高昂有嫌隙,闭城不纳。高昂躲在桥下,被西魏追兵杀死。此次东魏军被杀得大败,落水而死者多达万人,1.5万兵士被俘。
高欢闻知侯景战败,高昂被杀的消息,如丧肝胆,亲督大军前往前线,双方展开了一场激烈的大战。那天大雾弥漫,阵线很长,首尾远隔,从早上打到下午,战至数十合,双方犬牙交错,已经分辨不清对方了。西魏左右翼独孤信、赵贵战斗不利,又不知主帅所在,茫无头绪,以为打了败仗,弃军逃跑,后军李虎、念贤等也跟着逃跑。西魏阵线已乱,宇文泰只好放火烧了营寨,留下长孙子彦守金墉,自奉宝炬西归长安。在回撤的途中,宇文泰又攻下了恒农城。这一次双方打了个平手。