在魏惠王的第四个十年,魏国迫于公元前341年马陵之战后三面受敌(齐秦赵)、尤其是秦国在西方不断进攻魏国;齐国也迫于赵国压力,魏国与齐国达成和解并结盟。《史记魏世家》记载:前336年,与齐宣王会平阿南(沛郡有平阿县);前335年,复与齐王会甄(山东省鄄城县旧城);前334年,与齐会徐州,相王也。齐魏结盟之后,赵与秦联合并对魏开战。公元前333年,秦败魏龙贾军四万五千于雕阴(今陕西甘泉县南),赵围魏黄(今河南内黄县),不克。赵国沿邯郸南与魏交界处之今河北彰水修筑长城。公元前332年,魏国把阴晋(现在陕西华阴县)给了秦国,希望与秦暂和以集中兵力攻赵,魏国与齐国联合伐赵,赵国决黄河水淹魏齐联军,魏齐兵退。之后东方战事结束,秦国在西方大举攻魏,公元前331年,秦斩首魏军八万于河西,魏防守河西的主力被消灭,而东方又要防守赵国,魏军在西方一路败退。公元前331年魏割河西给秦,公元前328年,魏割上郡给秦。魏黄河以西之地尽失。魏国进入魏惠王统治的最后一个十年:公元前328年——公元前319年。
公元前328年,魏割上郡(现在陕西延安、榆林)给秦之后,魏秦停战。魏秦停战原因有三方面。第一、秦国连续与魏作战五年(从公元前333年到公元前328年),秦军也损失不少,秦国需要休息。第二、魏国实力依然雄厚,东方军队如若调到西方与秦作战,秦军胜算也不大,并且此时在东方魏齐联盟,赵又被魏齐击败,赵筑长城处于防守状态。第三、张仪相秦,秦国对魏政策改变。张仪之所以能相秦是因为张仪劝说魏国把上郡之地给了秦国。魏国不会无故把上郡给秦,一方面魏国不想损失更多的军队,为了保存有生力量,进行战略收缩,放弃几乎没有能力守住的黄河西岸孤地上郡对于魏国来说是明智的选择。另一方面,通过出让上郡,让魏国人张仪成功当上了秦国的相,这对于魏国的外交是有利的。张仪充当了魏与秦和平交往的使者。而张仪的主张是连横,即让秦魏联合,对抗楚齐、对抗东方六国的合纵,这势必缓和秦魏军事上的对抗与战争。终张仪有生之年,秦并未大规横侵魏,而是把战争扩张的方向对准了楚国,从这个角度说,张仪是有功于魏的,这也是张仪于公元前309年能在魏善终的原因。从公元前328年以后的战国形势来看,张仪让秦连横魏国,而公孙衍是要以楚为核心合纵东方六国,主要矛盾是秦与楚的对抗。齐楚时和时战,最终齐楚关系破裂,楚国被秦击败。
公元前328年张仪相秦之后,秦国为了连横魏国,于公元前327年,归还了魏国的焦(今河南陕县东北)、曲沃(前今河南陕县西南),《史记魏世家》:“魏襄王八年(现在史学界把《史记》魏襄王在位的十六年并入魏惠王)秦归我焦、曲沃。”公元前326年,《赵世家》:“赵肃侯卒,秦、楚、燕、齐、魏出锐师各万人来会葬。子武灵王立。”五国想乘赵丧瓜分赵国,但没有成功,这次事件,有人认为是魏惠王提出的倡议,但笔者未找到史料来源。公元前326年,韩、赵联合攻打魏国,《古本竹书纪年辑证》:“(韩)威侯七年,与邯郸围襄陵(今河南睢县)。”这件事,应与上年魏惠王与其他四国图谋瓜分赵国有关。公元前325年,《六国年表》:”魏败(韩)韩举。魏败(赵)赵護。”魏国通过一年的战争,打败了韩、赵,可见魏国还是很有实力;同一年,魏惠王与韩威侯相会,互尊为王,韩魏两国君主挟太子去赵国(《赵世家》记载),与赵也结为友好关系,三晋再次联合。
公元前324年,《六国年表》:“秦相张仪将兵取陕。秦初更元年。”秦国见魏国打败韩、赵,乘机攻魏,取魏陕地,即现在河南陕县。公元前323年,《六国年表》:“魏、韩、燕、赵中山五国相王。楚败我襄陵。诸侯执政与秦相张仪会齿桑(在梁与彭城之间)”这一年事比较多,秦国张仪想与齐楚联合,与齐楚的执政官在齿桑相会;而魏国公孙衍成功合纵韩、赵、燕、中山,五国互尊为王,史称“五国相王”(《史记张仪列传》记载);楚国昭阳在一年攻魏国,大破魏军于襄陵(今河南雎县),取魏国八城,诸侯震动。以至于魏惠王与孟子交谈时说:“晋国,天下莫强焉,叟之所知也。及寡人之身,东败于齐,长子死焉;西丧地于秦七百里;南辱于楚。寡人耻之!”(《孟子》)。楚国伐魏,面对齐、楚、秦三强的进攻,而三晋再次走向联合。
秦国为了破坏魏国的合纵,张仪辞秦相到魏国,担任魏相。公元前322年,张仪相魏,秦取魏曲沃(今山西闻喜)、平周(战国魏邑,在今山西介休市西)。秦国给魏国施压,不让合纵形成。但东方各国继续走向联合,前322年,《六国年表》:”赵与韩会区鼠(今山西介休市西南、霍州市以北的汾河河谷)。”前321年,《六国年表》:“赵取韩女为夫人。”齐国不愿魏国强大,三晋联合,借口不满中山国称王,而试图联合燕、赵攻中山国,但燕、赵没有同意,于是齐国又与秦友好,《六国年表》公元前320年,“齐迎妇于秦”。公元前319年,《六国年表》:“秦来击韩,取鄢(今河南鄢陵县)。楚城广陵。”《史记魏世家》:“张仪复归秦。”张仪于公元前322年相魏,希望破坏东方合纵,但没有成功,所以于公元前319年,又回到秦国。同年,秦国向韩国开战,秦国外交没有成功,就开始用武力解决问题。而楚国做为当时与齐秦并列的强国,出于自身利益考虑也加入了合纵行列,城广陵(今扬州),巩固后方,准备对秦开战。
公元前318年,楚、韩、魏、赵、燕五国合纵攻秦,推举楚怀王为纵长。但由于各国以自己的利益为主,并不能真正的联合在一起。燕军在去函谷关的路上,燕太子被张仪所劝说,率大军返回燕国;楚国被秦军烧毁粮草,楚国被迫撤军,最后只有率魏,赵,韩三国攻秦的函谷关。秦军迎战于函谷关(在今河南灵宝北),击败三国联军。魏军损失最大,提出与秦议和。义渠君乘秦国与联军交战之机,从后方起兵袭击秦国,大败秦军于李伯(在今甘肃天水东)。秦国受到义渠牵制,不能再与联军交战,同意议和。《史记魏世家》:“哀王元年(魏惠王于公元前319年去世),五国共攻秦,不胜而去。”
公元前317年,秦国对三晋展开反攻,齐国在东方配合秦国。《六国年表》:“秦与韩赵战,斩首八万。秦败韩修鱼(今河南原阳西南),得将军申差。赵与韩魏击秦。齐败魏赵观泽。”《田齐世家》:“齐与宋攻魏,败之观泽(今河南清丰县西南)。”三晋惨败,想想以前在魏文侯、魏武侯时,三晋联合四面打得别国求饶,真是时过境迁,不可同日而语。魏国公孙衍策划的东方各国的第一次合纵失败,表明东方六国已无力阻止秦国的向东兼并。