カンナエの戦い（カンナエのたたかい）は、紀元前216年8月2日、アプリア地方のカンナエ（カンネー）で起こった第二次ポエニ戦争における共和政ローマとカルタゴの戦いである。カンネーの戦いとも表記する。

1018年10月1日にも同じ場所で戦闘が起こっており、これもカンナエの戦いと呼ばれる（英語版）。これは東ローマとノルマン人の間で行われた戦闘で、東ローマ側が勝利したものである。

 前段階 
紀元前218年、アルプス山脈を越えてイタリア本土に侵入したカルタゴの将軍ハンニバルは、トレビア川の戦い、トラシメヌス湖畔の戦いで、ローマ軍に甚大な被害を与えた。ローマの元老院は、急遽ファビウス・マクシムスを独裁官に任命し、戦力を再編する時間を稼ぐことにした。ファビウスは、ハンニバルとの決戦を巧妙に避け、持久作戦を展開してカルタゴ軍の消耗を待った。

しかし、ハンニバルによってイタリア全土が略奪にさらされると、ファビウスのそうした姿勢は臆病だと指摘され、決戦を望む声が湧き起こった。これを受けてローマの元老院は、ファビウスの任期が切れると同時に、ルキウス・アエミリウス・パウルスとガイウス・テレンティウス・ウァロの両名を執政官に任命し、積極策に転じた。

両執政官は、総計8万以上の軍団を率いてハンニバルの迎撃に向かった。パウルスはハンニバルとの正面対決を避けるべきだと主張していたが、ウァロは決戦を望んでいた。紀元前216年8月2日、南イタリアのアプリア地方のカンナエ付近で、ローマ軍とハンニバル率いるカルタゴ軍約5万人が対峙、当日の最高指揮官であるウァロが決戦を挑んだため、カンナエの戦いが生起した。

 布陣 
この戦闘に参加した両軍の兵力および布陣は以下のようなものである。
 ローマ軍(ローマ同盟軍含む)
歩兵約80,000
騎兵約6,000
ローマ軍は1万人を野営地の警備に残し、残りの7万人を戦場に展開させた。布陣は主力である重装歩兵を中央に置き、その前面に軽装歩兵を展開、右翼をローマ騎兵、左翼を同盟国騎兵が固める配置であった。その作戦意図は重装歩兵による中央突破にあり、そのために各中隊（マニブルス）の間隔を狭くして戦列中央を厚くしていた。中央の指揮は前執政官（プロコンスル）のセルウィリウスが担当し、パウルスは右翼騎兵、ウァロは左翼騎兵を指揮した。

 カルタゴ軍
歩兵約40,000
騎兵約10,000

カルタゴ軍の布陣は、中央に重装歩兵、その前面に軽装歩兵、両翼に騎兵を置くのはローマ軍と同様だったが、ハンニバルは重装歩兵を弓なりに湾曲させて配置し、張り出した中央部に兵を集中させて縦深を深くした。これはハンニバルの意図が、中央で敵主力を拘束している間に両翼を突破し、敵全体を包囲することにあったためである。猛攻が予想される中央には、ある程度の損害を前提としてガリア歩兵とヒスパニア歩兵を置き、その両翼には熟練のカルタゴ歩兵を置いた。さらに歩兵戦列の右翼にはヌミディア騎兵を、左翼にはヒスパニア・ガリア騎兵を配置した。カルタゴ軍はローマ軍に比べて全軍に占める騎兵の割合が多く、その質も量もローマ軍の騎兵に比べて高かった。ハンニバルは、ヌミディア騎兵をハンノ・ボミルカル（ハンニバルの甥）に指揮させ、ヒスパニア・ガリア騎兵はハスドルバルに指揮させた。ハンニバル自身は左翼のカルタゴ歩兵を率い、右翼のカルタゴ歩兵はマゴに指揮させた。

 戦闘展開 

戦闘開始と同時に、ローマ軍の重装歩兵はカルタゴの歩兵戦列を突破するために前進した。ヒスパニア・ガリア歩兵は少しずつ押されていたが、弓なりの配置のおかげで、ローマ軍中央の前進速度を多少緩やかにすることができた。その間にカルタゴ軍左翼のヒスパニア・ガリア騎兵が優勢な戦力でローマ軍の右翼騎兵を圧倒し、これを壊走させた。一方、カルタゴ軍右翼のヌミディア騎兵とローマ軍左翼の同盟国騎兵は互角の戦いを繰り広げていた。

自軍の戦列中央が圧倒されつつあるのを見たハンニバルは、両翼のカルタゴ歩兵を前進させ、ローマ軍戦列の両翼を押し込んだ。一方、ローマ軍の右翼騎兵を壊走させたハスドルバル指揮下のヒスパニア・ガリア騎兵は、大きくローマ軍の背後を駆け抜けると、自軍のヌミディア騎兵と交戦しているローマ軍左翼の同盟国騎兵を背後から挟撃した。戦力的に劣勢となった同盟国騎兵はほどなく壊走を始めた。カルタゴ騎兵は逃げる同盟国騎兵を追わず、今度はローマ軍中央の後方へと回り込んだ。

ローマ軍の中央戦列は、ほとんどカルタゴ軍中央を突破しかけていたが、戦列の両翼にいるカルタゴ歩兵はいまだ優勢であり、その方面のローマ軍は前進することができなかった。この時点で、ローマ軍中央の陣形はV字になりつつあった。そこへ両翼のローマ軍騎兵を壊走させたカルタゴ軍騎兵が後方から襲いかかってきた。後方を突かれたローマ軍はパニック状態に陥って極度に密集したため、中央の兵は圧死する者まで現れた。前方をガリア歩兵、両側面をカルタゴ歩兵、後方をカルタゴ騎兵によって完全包囲下に置かれたローマ軍は、逃げることも中央突破もできずに殲滅されることとなった。

損害
この戦闘で、ローマ軍はおよそ5万から7万の戦死者を出し、野営地に残されていた部隊も多くが降伏して捕虜となった。その日の最高指揮官であるウァロは戦場から逃れたが、一方の指揮官であるパウルスは戦死した。また、中央の指揮を任されたセルウィリウスも戦死し、リウィウスは従軍していた80人以上の元老院議員とその候補者が戦死したとしている。当時の元老院は最大でも300人を超えなかったため、4人に1人以上が死んだことになる。

カルタゴ軍の死者はポリュビオスが5,700人と記し、その大半は戦列中央のガリア兵だったとしているが、リウィウスはハンニバルが8,000以上の遺体を埋葬したとしている。

 戦後と影響 
この大敗北の後、ローマはハンニバルとの正面決戦を避け、持久戦に持ち込むことにした。ファビウス・マクシムス、マルクス・クラウディウス・マルケッルスの両名を執政官とし、攻撃対象をシチリア、ヒスパニアなどのカルタゴ周辺へと変更し、外からの切り崩しを狙った。さらに優勢な海軍力を生かしてカルタゴ海軍を脅かし、カルタゴ本国からのハンニバルへの補給を断った。そして、戦力の再編とともに、カンナエの敗戦の原因といえる騎兵の育成に努め、これが後のザマの戦いの勝利に結びつくことになった。もっとも、騎兵の調達は相変わらず困難であることに変わりなく、同盟国の騎馬やヌミディア騎兵に頼ることが多かった。

一方のハンニバルは、この勝利によってローマ同盟都市が離反することを期待したが、同盟都市の結束は依然として固く、十分な成果は上がらなかった。敵地での補給に苦しむハンニバルは、ローマを攻めずに肥沃でカルタゴ本国とも連絡をつけやすいイタリア南部（マグナ・グラエキア）へ主攻を切り替えた。

この戦いから特に包囲戦の有効性が強調されるが、ローマの敗因は包囲されたことによりパニック状態になり、有効な組織的対応が出来なかったことにある点に留意する必要がある。もしローマ歩兵が包囲側の攻撃に耐え、そのまま前進して包囲網を突破し、左右に展開出来たならば、逆に寡少なカルタゴ軍を包囲できたことになり、全く違った結果となっていたと考えられる 。

後年、この戦いは包囲殲滅戦の手本とされ、ドイツ帝国陸軍のシュリーフェン・プランや、日露戦争の奉天会戦の日本軍もこれを参考にした。また、現代の教書でもこの戦いは重要視されている。この戦術は兵力が馬から戦車に変わった現在においても有効であり、スターリングラード攻防戦ではソ連軍がドイツの第6軍をこれと同じ戦術で包囲殲滅している。しかし、あまりにも見事である為、多くの軍人が同じ夢を見て真似をするが、大半はハドリアノポリスの戦いのように包囲に失敗し、大抵が壊滅的な損害を被り敗北してしまう例がほとんどである。