第二次ポエニ戦争
フラミニウスはこれを追撃、セルウィリウスとの挟撃を意図していたが、ハンニバルは逆に各個撃破を狙っていた。カルタゴ軍はトラシメヌス湖畔の隘路と丘陵を利用して、進撃して来たフラミニウス軍を伏撃、多大な損害を与えた。(トラシメヌス湖畔の戦い)こうした戦勝の中でローマ本軍とその捕虜には厳しく接する一方、同盟都市の捕虜は丁重に遇してローマからの離反を促すメッセージを託して即時釈放するなど、「戦勝を材料として同盟都市を離反させ、その上でローマを滅ぼす」という戦略の元で工作を重ねた。
3度の敗北を喫したローマはクィントゥス・ファビウス・マクシムスを独裁官に選出し、彼に一切の権限を委ねた。ファビウスはハンニバルとの正面対決を避け、カルタゴ軍の消耗を待つ持久戦をとった。しかし、ハンニバルによってイタリア全土が略奪にさらされると、ファビウスの迂遠な戦略は批判を招き、「クンクタトル(ラテン語でぐず、のろまの意)」というあだ名がつけられた。ファビウスの任期が切れると、元老院は決戦を望む声を反映し、ルキウス・アエミリウス・パウルスとガイウス・テレンティウス・ウァロを執政官に選出した。両名は80,000名の軍団を率いてハンニバルの迎撃に向かった。
ハンニバルの本領といえるヒスパニアには、紀元前218年にグナエウス・コルネリウス・スキピオ・カルウスの率いる軍団が派遣されていた。続いて弟のプブリウス・コルネリウス・スキピオの軍団も送り込まれ、増強したローマ軍は半島東岸から徐々に勢力を拡大し、紀元前211年には開戦原因となったサグントゥムを制圧した。ローマ軍の脅威によって、ハスドルバルはイタリアのハンニバルへ援軍を派遣できなくなった。同年、ローマ軍は二年に亘る包囲戦の末にカプア(カプア包囲戦)、シラクサ(シラクサ包囲戦)を陥落させた。カプアの指導者は処刑され、市民は分散されるか奴隷に落された。シラクサでは陥落後の略奪中、高名な数学者のアルキメデスが混乱の中で命を落としたという。
ハスドルバルは状況の変化を待っていた。弟のマゴがカルタゴ本国から率いてきた増援を合わせて戦力を整えつつ、ローマ軍内のヒスパニア兵が脱走するように仕向けた。ハスドルバルは好機を選んで反攻に移り、バエティス川の戦いでローマ軍を破ってコルネリウス兄弟を戦死させた。ただし、ローマ軍の戦力自体はいまだ侮れないものであったため、ハスドルバルはむやみに攻撃を仕掛けることを控え、軍を三分して着実に領土を奪還していった。
紀元前210年、プブリウス・コルネリウス・スキピオの同名の息子、後のスキピオ・アフリカヌスが新司令官としてヒスパニアに到着した。指揮官の戦死でローマ軍は意気消沈していたが、スキピオは卓越した手腕で軍を掌握し、またたくまに失地を回復した。紀元前209年、スキピオはヒスパニアの首都といえるカルタゴ・ノヴァ(現カルタヘナ)を強襲、制圧した。その後、この町で職工などを雇い、新兵の訓練と武装の生産を急ピッチで進めた。