周威烈王七年(公元前419年),魏军首先在河西少梁(今陕西韩城西南)修筑城池,建立巩固的前进基地,以便屯兵积粮进攻秦国。秦国随即发兵进攻少梁,阻止魏军修城。两军在少梁交战,魏军击败秦军,继续筑城,进行备战。秦军沿黄河边修筑防御工事,以阻止魏军向外扩张。
十三年(前413年),魏军准备完毕,开始向河西秦军进攻,深入至秦纵深的郑地(今陕西华县西南)附近,大败秦军。
十四年(前412年),魏文侯又命太子击率军攻克繁庞(今陕西韩城东南),驱其民而占其地。
十七年(前409年),魏文侯任命吴起为主将,攻克秦国河西之地(今山西、陕西两省间黄河南段以西地区)的临晋(即王城,今陕西省大荔县东南)、元里(今陕西省澄城县东南)并筑城。
十八年(前408年),吴起再次率军攻打秦国,一直打到郑县(今陕西省华县),攻克洛阴(今陕西省大荔县西南)、郃阳(今陕西省合阳县东南)并筑城。而秦国只能退守至洛水,沿河修建防御工事,并筑重泉城(今陕西省蒲城县东南)加以防守。在与秦军作战期间,吴起从不自视比普通士卒高人一等,夜晚就睡在不加平整的田埂上,用树叶遮盖身体来躲避霜露的侵袭。魏军经过三年休整,再度发起进攻以扩大战果,一鼓作气,连续攻克临晋(即王城,今陕西大荔东南)、元里(今陕西澄城东南)两城邑,并在临晋筑城。
十八年(前408年),魏军复克洛阴(今陕西大荔西南)、郃阳(又作合阳,今陕西合阳东南)两城邑,亦在洛阴筑城屯兵驻守,这样加上前412年被公子击占领的繁庞(今陕西省韩城市东南),魏国全部占有原本属于秦国的河西之地,并在此设立西河郡。经翟璜推荐,由吴起担任首任郡守。秦军则节节败退,至洛水沿岸修筑防御工事,并筑重泉城邑(今陕西蒲城东南)以防御魏军,阻其继续西进。
秦国失去河西战略要地,秦军退守洛水一带,其安全受到了严重的威胁。后来,经过数年的准备,秦国于周安王元年(公元前401年)开始进攻魏国,周安王九年(公元前393年)与魏国战于汪(今陕西澄城境内),周安王十二年(公元前390年)又与之战于武城(今陕西华县东),企图夺回河西要地。魏国军队则全力与秦军作战。
周安王十三年(公元前389年),秦国再次调集大约超过50万的大军,进攻秦国东进道路上的重要城邑阴晋。秦军在阴晋城外布下营垒,形势危急。魏国在河西驻守着一支精锐军队,西河郡守吴起,激励部队保持高昂士气。他请国君魏武侯举行庆功宴会,使立上功者坐前排,使用金、银、铜等贵重餐具,猪、牛、羊三牲皆全;立次功者坐中排,贵重餐具适当减少;无功者坐后排,不得用贵重餐具。宴会结束后,还要在大门外论功赏赐有功者父母妻子家属。对死难将士家属,每年都派使者慰问,赏赐他们的父母,以示不忘。此法施行了三年。秦军一进攻河西,魏军立即有数万士兵不待命令自行穿戴甲胄,要求作战。面对这次秦军大规模进攻,吴起请魏武侯派5万名没有立过功的人作为步兵,由自己亲自率领反击秦军。武侯同意,并加派战车500乘、骑兵3000人。战前一天,吴起向三军发布命令说:诸吏士都应当跟我一起去同敌作战,无论车兵、骑兵和步兵,“若车不得车,骑不得骑,徒不得徒,虽破军皆无功”(《吴子·励士》)。然后,吴起率领魏军在阴晋向秦军发起反击。这一天,魏军人虽少,却个个奋勇杀敌,以一当十。魏军经反复冲杀,将50万秦军打得大败,取得了辉煌战果。
公元前366年,魏国在武城(今陕西华县东)筑城,为秦所败。接着秦在洛阴打败了魏、韩联军。前364年,秦将章蟜领军越过黄河,攻入魏的河东,在石门(今山西运城县西南)大败魏军,并斩首6万魏军,魏国在赵国的支援下,秦才退兵。这时周显王派人向秦祝贺。
公元前362年,秦乘魏军在浍水(今山西省翼城县南)北岸与韩、赵联军大战之机,派庶长国出兵攻魏,在少梁(今陕西省韩城市南)大败魏援军,俘其主将公孙痤,占领繁庞城(今陕西省韩城市东南)。同年,秦献公去世。
前354年,赵国进攻卫国,魏国救卫,在南梁大败赵军,并进围赵都邯郸,赵求救于齐、楚。秦乘魏进围赵国首都邯郸的时机,于前354年在元里大败魏军,并占领少梁;同时派公孙壮伐韩,深入韩地,占领上枳、安陵、山氏,并筑城,插入魏、韩两国交界地区。
前353年,齐国以田忌、孙膑为将,发兵救赵。同年齐军大败魏军于桂陵,楚亦出兵魏国。
公元前352年,秦乘魏军在桂陵之战大败于齐军之机,由繁庞城东渡黄河,包围了魏故都安邑,魏守军降。次年商鞅率军包围固阳,魏国固阳的守军,在秦军强大的攻势下只好投降,秦国收回了一部分的失土。
公元前351年,商鞅率军进围固阳(今陕西省延安市东)。魏惠王立即派军在固阳东修建了崤山长城(东南起崤山,西北至黄河),以阻止秦军东进,保障河东地区与大梁的联系。至此魏国四面受敌,然而毕竟是当时第一强国,攻破赵都迫使赵结城下之盟后很快联合韩国大败齐军等诸侯军于襄陵,齐国,楚国求和。魏国在前351年以后陆续与东方各国结盟讲和后,调集军队向秦国反击,在前350年夺回了旧都安邑,西进并包围了定阳(今陕西延安市东南固县镇),在魏国的攻势之下同时又为争取时间在国内进行第二次变法,秦孝公被迫在彤(今陕西华县)和魏惠王相会修好,并归还所得的魏地。
公元前341年,魏10万大军在马陵之战被齐全歼,秦乘机于次年进攻河西,大败魏军,诱俘魏主将公子卬。公元前339年,秦军再由庞城渡河进攻,于岸门(今山西省河津县南)击败魏援军,俘主将魏错。次年年底,秦孝公死,秦惠文王继位,杀商鞅,重用魏人公孙衍。
公元前332年,秦惠王派军攻魏上郡重地雕阴(今陕西甘泉南)。魏防守河西的主将龙贾,集中兵力迎战。经2年激战,至三十九年(公元前330年),全歼魏军,斩首4.5万(此据《史记.魏世家》,《秦本纪》为8万),并俘虏了龙贾。魏被迫于次年将河西郡归还秦国。至此,秦全部收复了被魏夺占的河西之地。
河西之战是中国战国时代,魏国与秦国为争夺关中河西(今山西、陕西两省间黄河南段以西地区)地区发生的大规模战争,前后反复交战数次,秦经过商鞅变法国力大增,恰逢魏国精锐丧失殆尽国力大损,最终秦收复河西。