魏惠王时,位于中原东、西、南三面的齐、秦、楚相继转强,惠王又不能团结韩、赵共同对敌,所以陷入四面受敌的境地。在惠王即位的最初十几年,为与秦国争夺河西,先后交战六次。周显王元年(公元前368年),齐魏又在观津发生战争。周显王七年(公元前362年),魏再与韩、赵联军冲突。惠王为摆脱困境,继续发展文侯事业,恃其强大武力,采取先制服赵、韩,再图争霸中原的战略方针,发动了桂陵之战。
周显王十五年(公元前354年),魏惠王命将军庞涓率军八万,进攻赵国邯郸,攻势甚猛。赵国向齐国求救,齐威王召集大臣商议。齐相邹忌主张不救,段干朋则主张救,说:“不救不义,且不利”(《史记·卷四十六·田敬仲完世家》),可以先派兵去攻魏国襄陵(今河南睢县),以疲惫魏国,待魏军攻下邯郸,精疲力尽时攻魏救赵。威王采纳段干朋主张,派兵联合宋、卫会攻魏国襄陵(《古本竹书纪年》)。
秦乘魏国围攻邯郸之机,在元里(今陕西澄城县南)打败魏军,攻占了魏的少梁(今陕西韩城县西南),楚宣王也派景谷为将率兵救赵,攻夺了魏国睢水、浍水之间的地区。魏国围攻邯郸近一年,于周显王十六年(公元前353年)克邯郸。齐见疲魏的目的已达到,遂派田忌为主将,孙膑为军师,率八万精兵救赵。孙膑针对齐魏两军的形势,提出“批元捣虚”之计,即大军不北上直接救赵,而直捣魏国,“居其街路,冲其方虚”,迫使侵赵魏军“释赵而自救”(《史记·卷六十五·孙子吴起列传》)。后人称其为“围魏救赵”之计。齐军进入魏国后,孙膑又建议田忌首先派齐城、高唐两位都大夫去攻击魏国在东阳地区的重镇平陵(今山东曹县西北)。[3]平陵南有宋,北有卫,中途有魏国的币丘,攻城军粮道易被切断。而齐军偏偏选择这颗钉子来拔,目的是向魏军示疑,给魏军造成齐将“不知事”的假象。齐两位都大夫未到平陵就在中途被魏军打败,起到了疑敌的作用。田忌、孙膑为疑误魏军,又派轻车锐卒直攻魏都大梁,以激怒魏君,让他逼迫庞涓回军来救。同时,又分少量步兵随车兵而进,麻痹敌人,而主力大军则集结待命。庞涓果然中计,他凭借胜赵之余威,率军回救。见齐军的部署大不以为然,产生了骄傲轻敌的思想,令大军抛弃了辎重,昼夜不停地前进,并亲率轻兵奔袭齐军。田忌、孙膑则率齐军主力在桂陵(今山东荷泽东北)设伏截击,庞涓率追兵赶到,齐军突起一战而克,歼灭魏军,活捉庞涓。
桂陵之战是魏国由盛而衰的转折点,尽管在桂陵之战后,魏惠王凭借文侯奠定的雄厚基业,一度在襄陵打败了齐、宋、卫联军,稍稍挽回一些颓势,但从此走上下坡路则是确定无疑了。齐国在桂陵之战后,声威大振,开始取代魏国,成为中原诸侯中最强大的国家。