第二次ポエニ戦争
背景
第一次ポエニ戦争の結果、カルタゴはシチリア島をローマに割譲し、地中海における海上覇権を大きく減退させた。カルタゴはこの損失を補うため、ヒスパニア（イベリア半島）の征服に取り掛かった。ハミルカル・バルカによってヒスパニアの征服と植民地化が開始され、彼の死後は娘婿のハスドルバルが事業を継続した。紀元前226年、ハスドルバルはローマとの間にエブロ川以北には進出しない旨の誓約を交わした。
紀元前221年、ハスドルバルが暗殺されると、ハミルカル・バルカの息子ハンニバルが後継者となった。ローマの伝記作者に拠れば、ハンニバルは幼い頃からローマに対する憎悪を教え込まれ、攻撃の機会を狙っていたという。紀元前219年、ハンニバルはサグントゥムを攻撃した。サグントゥムはエブロ川以南の都市であったが、ローマとの同盟を結んでいたため、ローマは攻撃停止を求める使節団をカルタゴに派遣した。しかし、両者が交渉をしている間にサグントゥム陥落の一報が到着、クィントゥス・ファビウス・マクシムスは使節団を代表して宣戦を布告した。
アルプス越え
ローマを屈服させるにはイタリア本土を直接攻撃するしかない。しかし、制海権がローマに握られている以上、海上からの侵攻は困難である。さらにローマはカルタゴの侵入が予想されるイタリア西部、南部に兵力を配置していた。ここでハンニバルはアルプス山脈を越え、ローマの防備の薄い北方から侵攻するという前代未聞の発想に至る（ハンニバルのアルプス越え）。
紀元前218年5月、弟のハスドルバルにヒスパニアの統治を任せたハンニバルは、カルタゴ・ノヴァ(現カルタヘナ)を進発し、海岸線沿いに南フランスを進んだ。ローヌ川での戦いを経て9月、ハンニバルは約40,000名の兵士と30頭の戦象を率いてアルプス越えに挑んだ。なお、この際にカルタゴ軍が辿ったルートの詳細は不明であり、現在でも諸説分かれている。9月のアルプスはすでに冬季といってよく、ケルト人の部族との戦いもあり、大軍での越山は困難を極めた。イタリアに到着した際のカルタゴ軍の兵力は26,000名(歩兵20,000名、騎兵6,000名)、戦象はわずか3頭となっていた。
ハンニバル進撃
カルタゴ軍がイタリア北部に現れたという知らせはローマに大きな衝撃を与えた。元老院は執政官プブリウス・コルネリウス・スキピオに2個軍団を与え、急遽迎撃に派遣した。11月、ティキヌス川付近で両軍の指揮官が直接指揮する騎兵同士が会敵し、そのまま戦闘になった。精強なヌミディア騎兵を中心とするカルタゴ軍がローマ騎兵を一蹴し、指揮官スキピオも負傷した。(ティキヌスの戦い)
スキピオはピアチェンツァまで軍を後退させ、もう1人の執政官ティベリウス・センプロニウス・ロングスと彼の率いる軍団の合流を待った。カルタゴ軍は南進し、トレビア川を挟んでローマ軍と対峙した。12月18日、ハンニバルは騎兵によってローマ軍を対岸に誘引し、さらに林の中に埋伏させた弟マゴの指揮する騎兵にローマ軍の後方を奇襲させ、大損害を与えた。(トレビアの戦い)
この勝利はハンニバルの名声を大きく高めた。ローマに敵対的だったガリアの部族はハンニバルを支持し、彼らの合流によってカルタゴ軍は一挙に50,000まで膨れ上がった。翌紀元前217年、元老院はガイウス・フラミニウス、グナエウス・セルウィリウスを執政官に選出、新たに4個軍団50,000名を動員した。両執政官はそれぞれ2個軍団を率いて北上し、分散してカルタゴ軍を待ち構えたが、ハンニバルは彼らの予想を裏切り、アペニン山脈を越えて南下した。フラミニウスはこれを追撃、セルウィリウスとの挟撃を意図していたが、ハンニバルは逆に各個撃破を狙っていた。カルタゴ軍はトラシメヌス湖畔の隘路と丘陵を利用して、進撃して来たフラミニウス軍を伏撃、多大な損害を与えた。(トラシメヌス湖畔の戦い)こうした戦勝の中でローマ本軍とその捕虜には厳しく接する一方、同盟都市の捕虜は丁重に遇してローマからの離反を促すメッセージを託して即時釈放するなど、「戦勝を材料として同盟都市を離反させ、その上でローマを滅ぼす」という戦略の元で工作を重ねた。
3度の敗北を喫したローマはクィントゥス・ファビウス・マクシムスを独裁官に選出し、彼に一切の権限を委ねた。ファビウスはハンニバルとの正面対決を避け、カルタゴ軍の消耗を待つ持久戦をとった。しかし、ハンニバルによってイタリア全土が略奪にさらされると、ファビウスの迂遠な戦略は批判を招き、「クンクタトル(ラテン語でぐず、のろまの意)」というあだ名がつけられた。ファビウスの任期が切れると、元老院は決戦を望む声を反映し、ルキウス・アエミリウス・パウルスとガイウス・テレンティウス・ウァロを執政官に選出した。両名は80,000名の軍団を率いてハンニバルの迎撃に向かった。
カンナエ
紀元前216年8月2日、アプリア地方のカンナエ近郊で両軍は対峙、当日の指揮官であるウァロが決断し、ローマ軍約80,000(うち10,000名が陣地に残留)はカルタゴ軍約50,000に決戦を挑んだ。戦闘序盤でカルタゴ軍左翼の騎兵はローマ軍右翼の騎兵を撃退。続いてローマ軍後方を迂回して反対側の翼へ回り込み、右翼の騎兵とローマ騎兵を挟撃した。ローマ軍中央はカルタゴ軍中央に猛攻撃を加えていたが、戦闘前にハンニバルが弓なりに歩兵戦列を配置していたため、徐々に押し込まれながらも持ちこたえていた。カルタゴ軍歩兵戦列の両翼に配された古参のアフリカ人傭兵は互角の戦いを繰り広げており、ローマ軍中央はV字になりつつあった。そこへローマ騎兵を撃退したカルタゴ騎兵が、歩兵戦列の後方に回り込み、完全な包囲態勢が完成した。恐慌状態に陥ったローマ軍は密集し、中央で圧死が発生、さらに外周から徐々に殺戮され、突破口を開くこともできずに殲滅された。ローマ軍の損害は、死傷60,000名、捕虜10,000名という破滅的なものであり、執政官パウルスと約80名の元老院議員も戦死した。この戦いは、完全包囲を成功させた最初の戦例であり、さらにまた自軍に倍する敵軍を包囲殲滅した稀有な戦例である。ハンニバルの傑出した軍才を証明するものといえるだろう（カンナエの戦い）。
戦線膠着
この勝利によってハンニバルの名声は頂点に達した。南イタリアのカプア、シチリア島のシラクサは、カルタゴに味方することを宣言、以降3年に亘ってローマと戦いを繰り広げることとなる。しかしそれ以外のローマと同盟都市との結束は崩れず、この最優先戦略目的に関する誤算がハンニバルに重くのしかかっていくことになる。紀元前217年にハンニバルと同盟を結んでいたマケドニア王ピリッポス5世も行動を開始し、第一次マケドニア戦争が勃発した。しかし、マケドニア艦隊はイタリア半島に到達することができず、直接ハンニバルを支援することはできなかった。敵地での補給に苦しむカルタゴ軍は、首都ローマを攻めずに肥沃でカルタゴ本国とも連絡をつけやすい半島南部へ主攻を切り替えた。
一方のローマは壊滅的な大敗北に絶望していた。ローマ人は神に助けを請い、人身御供を捧げることにした。数人の奴隷が殺され、フォルムに埋められた。これはローマにおける最後の人身御供として記録されている。元老院はファビウスの考えが正しかったことを悟り、ファビウス（この頃には、クンクタトルの意味が『ぐず』より前向きな意味に変化したとも言われ、『ローマの盾』とも言われた）、とマルクス・クラウディウス・マルケッルス（ファビウスに対し『ローマの剣』と呼ばれた）を執政官として態勢の立て直しを図った。そしてマルケッルスは第一次ノラの戦いで勝利を収めたことで、ハンニバル相手にも勝ちうることを示してカンナエで消沈したローマ人を勇気づけた。基本戦略としてファビウスの持久戦略を採用してハンニバルとの決戦を避け、同時に攻撃対象をシチリア島（マルケッルスが攻略）、ヒスパニアなどのカルタゴ周辺へと変更して外からの切り崩しを狙った。そしてティベリウス・センプロニウス・グラックスに「奴隷軍団」を組織させてマルケッルスらと共にハンニバル包囲網を担わせる。さらに優勢な海軍力を生かしてカルタゴ海軍を脅かし、カルタゴ本国からのハンニバルへの補給を断った。
ヒスパニア争奪戦
ハンニバルの本領といえるヒスパニアには、紀元前218年にグナエウス・コルネリウス・スキピオ・カルウスの率いる軍団が派遣されていた。続いて弟のプブリウス・コルネリウス・スキピオの軍団も送り込まれ、増強したローマ軍は半島東岸から徐々に勢力を拡大し、紀元前211年には開戦原因となったサグントゥムを制圧した。ローマ軍の脅威によって、ハスドルバルはイタリアのハンニバルへ援軍を派遣できなくなった。同年、ローマ軍は二年に亘る包囲戦の末にカプア（カプア包囲戦）、シラクサを制圧（シラクサ包囲戦）。シラクサ陥落時に司令官マルケッルスの命に反して、高名な数学者のアルキメデスがローマ兵によって殺された。
ハスドルバルは状況の変化を待っていた。弟のマゴがカルタゴ本国から率いてきた増援を合わせて戦力を整えつつ、ローマ軍内のヒスパニア兵が脱走するように仕向けた。ハスドルバルは好機を選んで反攻に移り、バエティス川の戦いでローマ軍を破ってコルネリウス兄弟を戦死させた。ただし、ローマ軍の戦力自体はいまだ侮れないものであったため、ハスドルバルはむやみに攻撃を仕掛けることを控え、軍を三分して着実に領土を奪還していった。
紀元前210年、プブリウス・コルネリウス・スキピオの同名の息子、後のスキピオ・アフリカヌスが新司令官としてヒスパニアに到着した。指揮官の戦死でローマ軍は意気消沈していたが、スキピオは卓越した手腕で軍を掌握し、またたくまに失地を回復した。紀元前209年、スキピオはヒスパニアの首都といえるカルタゴ・ノヴァ(現カルタヘナ)を強襲、制圧した。その後、この町で職工などを雇い、新兵の訓練と武装の生産を急ピッチで進めた。紀元前208年、ハスドルバルは反撃のため、分散していたマゴの軍と合流しようとした。これを察知したスキピオは、合流前に各個撃破するべくハスドルバルのもとへ急行し、バエクラの戦いでこれを破った。ここにおいてカルタゴのヒスパニアにおける支配力は低下した。
ハスドルバルはヒスパニアの放棄を決意し、ハンニバルの元へ最後の援軍を派遣するべく、自身軍団を率いてイタリアへ向かった。ハンニバルと同様に、アルプス越えをしてローマ軍の警戒線を抜けるつもりだったが、今回はローマはこれを予想していた。ハスドルバルの軍団は、ガイウス・クラウディウス・ネロとマルクス・リウィウス・サリナトル率いるローマ軍に進軍を阻まれた。紀元前207年、メタウルスの戦いでカルタゴ軍は撃破され、ハスドルバルは戦死、その首は剥製にされてハンニバルの陣営に投げ込まれた。
紀元前206年、スキピオはイリパの戦いでカルタゴ軍の残存部隊を破り、間もなくヒスパニアの征服を完成した。マケドニアはカルタゴの敗勢を確信し、紀元前205年、カルタゴとの同盟を破棄してローマと講和を結んだ。これまでにマルケッルスやグラックスらを戦死に追いやったハンニバルだが、支援を完全に断たれてイタリア半島南端に封じ込められ、戦えばローマ軍を撃破し軍を維持したもののそれ以上の行動までは起こせなかった。また、紀元前205年にはマゴがヒスパニアから北イタリアに海路上陸し、ポー平原に進出した。現地のガリア人を組織して大軍を編成し、南下してハンニバルとの合流する作戦であった。しかし紀元前203年にインスブリアで敗北し、目的を達することはできなかった（ポー平原遠征）。
カルタゴ逆侵攻
ローマに帰国したスキピオは英雄として称えられた。スキピオは執政官に必要な年齢に達していなかったが、特例として紀元前205年の執政官に選出された。カルタゴとの戦争に決着をつけるため、スキピオは敵本土への直接攻撃を訴えたが、元老院はこれに難色を示した。ファビウスや大カトが反対派の急先鋒となり、結局元老院はこの提案を退けた。スキピオはシチリアに派遣され、その地で軍隊を徴募した。翌紀元前204年、スキピオはプロコンスル(前執政官)として軍団を率い、北アフリカのウティカへ上陸した。
カルタゴ軍はヌミディア軍と協同して迎撃に向かったが、スキピオはこれを一蹴した（ウティカの戦い）。余勢を駆ったスキピオはヌミディアへ侵攻し、バグラデス川の戦いでの大勝の後にヌミディア王シュファクスを捕縛（キルタの戦い）、自身の保護下にあったヌミディアの王子マシニッサを王に即位させてアフリカにおける同盟国を得た。しかもそれは同時に屈強な騎兵をカルタゴから奪い取ることでもあった。カルタゴはイタリア半島のハンニバルを呼び戻して戦力を再編する一方で、ローマに休戦を打診した。ローマの元老院は申し出を了承したが、不測の事態が起きて交渉は決裂した。カルタゴはハンニバルに約50,000名の兵と80頭の戦象を率いさせて派遣し、スキピオも約40,000名の兵を率いてヌミディアからカルタゴへ兵を返した。紀元前202年10月19日、両軍はザマの西方で対峙した。
ハンニバルは最初に戦象を突撃させたが、スキピオはこれを予測して部隊を配置していたため、突撃はほとんど威力を発揮しなかった。カルタゴ軍はローマ兵に包囲された。歩兵のおよそ半数が降伏し、降伏を拒否した者は殺戮された（ザマの戦い）。
結果
この戦争の結果、カルタゴは海外領土を失い、軍事力も大きく減退した。しかし、カルタゴ本土は健在であり、潜在的な国力はけして低いものではなかった。それは、賠償金が思ったより早く完済されたことから分かる。また、ローマ人の中には往時のハンニバルに対する恐怖心が存在した。そのため、ローマの元老院では、カルタゴが復讐に乗り出す前に、これを完全に滅ぼすべきであるという提案がなされた。その最先鋒となったのが大カトで、彼は演説を終えるとき常に「ところで、私はカルタゴは滅ぼされるべきであると思う(Ceterum censeo Carthaginem esse delendam)」と付け加えた。この意見が採用されて攻撃に至ることはなかったが、大カトに賛同する者は少なくなかった。
紀元前200年、ピリッポス5世のイリュリアに対する介入を口実にローマはマケドニアに侵攻、第二次マケドニア戦争が開始された。戦いはローマの優勢に進み、紀元前196年、マケドニアはローマに降伏した。カルタゴと同様に対等の同盟を宣言していたが、事実上は従属であった。続く第三次マケドニア戦争(紀元前171年 - 紀元前168年)によって、マケドニア王国は4つの共和国に分割され、王国は消滅した。第四次マケドニア戦争(紀元前150年 - 紀元前148年)の結果、ギリシアは完全にローマの属州となった。
第二次ポエニ戦争終結から約50年が経過した頃、ヌミディアが頻繁にカルタゴ領に侵入し、略奪を行うようになった。カルタゴはローマに解決を求めたが、ローマは何の対策も講じなかった。カルタゴはヌミディアに対抗するために軍備を整え始めたが、ローマは条約違反であると非難し、これを大義名分として軍団を派遣した。紀元前149年、第三次ポエニ戦争が開始され、紀元前146年にスキピオ・アエミリアヌスの指揮の下、3年に亘る抵抗の末にカルタゴは完全に滅亡した。
これら一連の戦争の結果、ローマの地中海世界における覇権が確立した。