坎尼會戰(Battle of Cannae),發生於公元前216年,乃是第二次布匿战争中的主要戰役。此前迦太基軍隊主帥漢尼拔入侵義大利,並且屢敗羅馬軍隊。而為了截斷羅馬之糧食補給,進一步打擊其士氣,汉尼拔於是進兵至義大利南方之羅馬糧倉坎尼城。8月2日,迦太基軍與羅馬軍相遇,大戰爆發。汉尼拔運籌帷幄,成功地以少勝多,擊潰了由羅馬執政官保卢斯與發羅二人所統領的大軍。此戰雖然並没有令迦太基徹底擊潰羅馬,但汉尼拔戰術運用之高妙,使之時至今天,仍被誉為軍事史上最偉大的戰役之一。
羅馬人在特拉比亞會戰(前218年)與特拉西梅諾湖會戰(前217年)的慘敗中恢復過來後,打算在坎尼與漢尼拔決戰,並且派出了約八萬七千名羅馬同盟軍出戰。羅馬軍將右翼置於奧非都斯河附近,騎兵放於兩翼,而重步兵則集中在中軍。為了對付羅馬的佈陣,漢尼拔使用了雙重包抄的戰略,將最不可靠的兩萬五千名高盧新兵置於中軍,並混以八千名久經沙場的西班牙重裝兵。而其中軍並不是一條直線,乃是由中央突起的弓形陣,以誘敵擊之。而精銳騎兵則置於兩翼,以作包抄之用。在戰事開始時,迦太基的中軍不敵羅馬中軍的優勢兵力而向後撤。但羅馬人在不久後便墮入了一個巨大的凹字中心裡,而迦太基的中央步兵與兩翼的騎兵則由中間進逼,結果包圍了羅馬軍。羅馬軍無處可撤,結果被迦太基軍分割,逐個擊破。最終,大約六萬至七萬名羅馬士兵戰死或被俘,兩名統帥之一,執政官保盧斯,与八十名元老院成員一同阵亡。