公元前354年,赵国进攻魏国的盟国卫国,夺取了漆及富丘两地(均在今河南省长垣县),此举招致了魏国的干涉,魏国派兵包围赵国首都邯郸(今河北省邯郸市)。次年,赵国派使者向齐、楚两国求救。齐威王召集大臣们商议,邹忌反对救援,而段干朋则建议齐威王分兵一路向南攻打襄陵(今河南省睢县)来疲劳魏军,然后趁魏军攻破邯郸后救援赵国,这样既救援了赵国,又同时削弱了魏、赵两国。齐威王采纳段干朋的建议,兵分两路,一路齐军围攻魏国的襄陵,一路由田忌、孙膑率领救援赵国。
公元前353年,齐军兵分两路,一路与宋国景敌、卫国公孙仓所率部队会合,围攻魏国的襄陵。一路由田忌、孙膑率领救援赵国。
此时魏军主力已攻破赵国首都邯郸,庞涓率军八万到达茬丘,随后进攻卫国,齐国方面田忌、孙膑率军八万到达齐、魏两国边境地区。田忌想要直接与魏军主力交战,但被孙膑阻止。孙膑认为魏国长期攻打赵国,主力消耗于外,老弱疲惫于内,国内防务空虚,应当采用声东击西、围魏救赵的战术,直捣魏国首都大梁迫使魏国撤军,魏国一撤军,赵国自然得救。
孙膑于是建议田忌南下佯攻魏国的平陵(今山东省定陶县东北),因为平陵城池虽小,但管辖的地区很大,人口众多,兵力很强,是东阳地区(指魏国首都大梁以东的地区)的战略要地,很难被攻克;而且平陵南面是宋国,北面是卫国,进军途中要经过市丘,容易被切断粮道,佯攻此地能很好的迷惑魏军,造成庞涓产生齐军主将指挥无能的错觉。田忌采纳孙膑的计谋,拔营向平陵进军。接近平陵时,孙膑向田忌建议由临淄(今山东省淄博市)、高唐(今山东省高唐县)两城的都大夫率军直接向平陵发动攻击,吸引魏军主力,果然攻打平陵的两路齐军大败。孙膑让田忌一面派出轻装战车,直捣魏国首都大梁的城郊,激怒庞涓迫使其率军回援;一面让田忌派出少数部队佯装与庞涓的部队交战,故作示弱使其轻敌。田忌按孙膑的要求一一照办,庞涓果然丢掉辎重,以轻装急行军昼夜兼程回救大梁。孙膑带领主力部队在桂陵(今河南省长垣县西南)设伏,一举擒获庞涓。桂陵之战并没有击溃魏军主力,齐国也没有正式进攻魏国首都大梁,赵国首都邯郸仍为魏国所占领。
前352年,魏惠王调用韩国的军队击败包围襄陵的齐、宋、卫联军,齐国被迫请楚国大将景舍出面调停,各国休战。前351年,魏惠王与赵成侯在漳河边结盟,撤出赵国首都邯郸。大约在此时齐国将庞涓释放,使其回魏再度为将。
公元前342年,魏将穰疵在南梁(今河南省汝州市西)和霍(今河南省汝州市西南)击退韩将孔夜的军队,韩昭侯派使者向齐国求救。齐威王向大臣们询问应当及早救韩还是推迟救韩。张丏认为如果晚救韩,韩国必将转而投靠魏国,不如早救韩;田忌则认为趁韩、魏之兵还未疲惫就出兵,等于代替韩军遭受魏军的攻击,反而会受制于韩,不如晚救韩等待魏军疲惫,韩国危在旦夕一定会求救于齐国,这样可以名利双收。齐威王十分赞同田忌的观点,秘密与韩国使者达成协议,但没有立即派出援军援助韩国。而韩国自恃有齐国的援助,与魏国作战接连五次战败,不得不求救于齐国。齐威王于是派田忌、田朌为主将,田婴为副将,孙膑为军师,率军援助韩国。
孙膑再次采用围魏救赵的战术,率军袭击魏国首都大梁。庞涓得知消息后急忙从韩国撤军返回魏国,但齐军此时已向西进军。孙膑考虑到魏军自恃其勇,一定会轻视齐军,况且齐军也有怯战的名声,应采用诱敌深入的战术,引诱魏军进入埋伏圈后加以歼灭。孙膑命令进入魏国境内的齐军第一天埋设十万个做饭的灶,第二天减为五万个,第三天减为三万个。庞涓行军三天查看齐军留下的灶后非常高兴,说:“我本来就知道齐军怯懦,进入魏国境内才三天,齐国士兵就已经逃跑了一大半。”于是丢下步兵,只带领精锐骑兵日夜兼程追击齐军。孙膑估算庞涓天黑能行进至马陵,马陵道路狭窄,两旁又多是峻隘险阻,孙膑于是命士兵砍去道旁大树的树皮,露出白木,在树上写上“庞涓死于此树之下”,然后命令一万名弓弩手埋伏在马陵道两旁,约定“天黑能在此处看到有火光就万箭齐发”。庞涓果然当晚赶到砍去树皮的大树下,见到白木上写着字,于是点火查看。字还没读完,齐军伏兵万箭齐发,魏军大乱。庞涓自知败局已定,于是拔剑自刎,临死前说道:“遂成竖子之名!”齐军乘胜追击,歼灭魏军十万人,俘虏魏国主将太子申。经此一战魏国元气大伤,失去霸主地位,而齐国则称霸东方。
庞涓墓位于山东省淄博市淄川区将军路街道办事处将军头村东。
庞涓因常年征韩伐赵、讨楚抗齐,致使树敌众多,以至于魏惠王下令厚葬不久,陵墓即被偷掘毁坏,暴尸荒野。因首级在齐国,孙膑为其在淄川留仙湖另立了碑文,保存至今。
李廷机:“孙膑与庞涓,同受鬼谷诀。 减灶暗行兵,庞涓被其获。”
钱德苍:“庞涓暴虐早身亡,孙子忍之无恙。 ”