公元前354年,赵国进攻魏国的盟国卫国,夺取了漆及富丘两地(均在今河南省长垣县),此举招致了魏国的干涉,魏国派兵包围赵国首都邯郸(今河北省邯郸市)。次年,赵国派使者向齐、楚两国求救。齐威王召集大臣们商议,邹忌反对救援,而段干朋则建议齐威王分兵一路向南攻打襄陵(今河南省睢县)来疲劳魏军,然后趁魏军攻破邯郸后救援赵国,这样既救援了赵国,又同时削弱了魏、赵两国。齐威王采纳段干朋的建议,兵分两路,一路齐军围攻魏国的襄陵,一路由田忌、孙膑率领救援赵国。公元前353年,齐军兵分两路,一路与宋国景敌、卫国公孙仓所率部队会合,围攻魏国的襄陵。一路由田忌、孙膑率领救援赵国。此时魏军主力已攻破赵国首都邯郸,庞涓率军八万到达茬丘,随后进攻卫国,齐国方面田忌、孙膑率军八万到达齐、魏两国边境地区。田忌想要直接与魏军主力交战,但被孙膑阻止。孙膑认为魏国长期攻打赵国,主力消耗于外,老弱疲惫于内,国内防务空虚,应当采用声东击西、围魏救赵的战术,直捣魏国首都大梁迫使魏国撤军,魏国一撤军,赵国自然得救。孙膑于是建议田忌南下佯攻魏国的平陵(今山东省定陶县东北),因为平陵城池虽小,但管辖的地区很大,人口众多,兵力很强,是东阳地区(指魏国首都大梁以东的地区)的战略要地,很难被攻克;而且平陵南面是宋国,北面是卫国,进军途中要经过市丘,容易被切断粮道,佯攻此地能很好的迷惑魏军,造成庞涓产生齐军主将指挥无能的错觉。田忌采纳孙膑的计谋,拔营向平陵进军。接近平陵时,孙膑向田忌建议由临淄(今山东省淄博市)、高唐(今山东省高唐县)两城的都大夫率军直接向平陵发动攻击,吸引魏军主力,果然攻打平陵的两路齐军大败。孙膑让田忌一面派出轻装战车,直捣魏国首都大梁的城郊,激怒庞涓迫使其率军回援;一面让田忌派出少数部队佯装与庞涓的部队交战,故作示弱使其轻敌。田忌按孙膑的要求一一照办,庞涓果然丢掉辎重,以轻装急行军昼夜兼程回救大梁。孙膑带领主力部队在桂陵(今河南省长垣县西南)设伏,一举擒获庞涓。桂陵之战并没有击溃魏军主力,齐国也没有正式进攻魏国首都大梁,赵国首都邯郸仍为魏国所占领。前352年,魏惠王调用韩国的军队击败包围襄陵的齐、宋、卫联军,齐国被迫请楚国大将景舍出面调停,各国休战。前351年,魏惠王与赵成侯在漳河边结盟,撤出赵国首都邯郸。大约在此时齐国将庞涓释放,使其回魏再度为将。