為了掩飾戰略意圖,孫臏建議先南下佯攻魏國平陵(今山東菏澤市定陶區東北)。平陵雖然地小,但是個戰略要地,兵力充足,易守難攻。孫臏說攻打平陵可以讓魏國人覺得我們齊軍指揮官是個二貨,讓他們掉以輕心。
田忌采納孫臏的計策,大軍開向平陵。等接近平陵時,孫臏讓田忌命令齊國附近的兩個城池直接發兵攻打平陵,吸引魏軍注意,被打得大敗。另一方麵,孫臏派出一小隊先鋒,直接衝到了大梁城,逼迫龐涓回來。在龐涓撤回路上,孫臏還派了少數部隊和龐涓交戰,每次開打就故意示弱逃跑故意外。龐涓覺得齊國兵不過如此,於是舍棄輜重,輕裝行軍,日夜兼程趕回都城救援。
這一切都在孫臏的預料當中,按照孫臏的部署,齊軍主力已在龐涓回來的必經之路桂陵(今河南省長垣縣西南)設伏。當時齊、魏雙方的兵力差不多都是八萬左右,但魏軍被孫臏的一步步策略折騰得夠嗆。等龐涓率領大軍經過桂陵,齊軍殺聲四起,伏軍儘出,魏軍頓時大亂陣腳,紛紛逃散,主將龐涓則被生擒。見到孫臏後,龐涓幡然醒悟,難怪乾不過齊國人,原來是自己的克星孫臏在當軍師。
這場戰役史稱桂陵之戰,是一場精彩的阻擊戰。孫臏步步為營,避實就虛,設套框柱了龐涓,不過孫臏不像伍子胥那麼狠,倒是沒有殺了龐涓泄恨。
桂陵之戰魏國雖然大敗,主帥被俘,不過本身家底雄厚,趙國邯鄲仍然被魏軍占領。另一邊,魏惠王調用了韓國軍隊打敗了攻打襄陵的齊、衛、宋聯軍。齊威王看魏國還是這麼強壯,想要停戰了,就請求楚國當中間人進行調解。魏國遭受重大失利,同意調解方案,於是各國停戰,魏軍撤出邯鄲,趙國得救,龐涓則被齊國放了回來。
按照當時的實力排名,魏國仍然占據榜首,齊國則躍居第二,楚國第三,秦國此時還在上升期,暫居第四。春秋末代霸主越國經曆了數次內亂,國力大衰,已經大不如前了,依靠著家底勉強排第五。韓國經過申不害變法後,實力超過趙國,排第六。趙國第七。燕國這時候還比較落後,和宋國、魯國實力差不了多少。這也是魏國最後一次霸榜了,宣告魏國霸業終結的戰役即將來臨。