En 219 a.C., Aníbal asediou, capturou e saqueou a cidade pró-romana de Sagunto, provocando unha declaración de guerra romana contra Cartago na primavera de 218 a.C. Ese ano, Aníbal sorprendeu aos romanos marchando co seu exército por terra desde Iberia, a través da Galia e os Alpes.
á Galia Cisalpina (actual norte de Italia). Reforzado por aliados galeses, obtivo vitorias esmagadoras sobre os romanos nas batallas de Trebia (218) e do Lago Trasimeno (217). Trasladouse ao sur de Italia en 216, onde derrotou aos romanos de novo na batalla de Canas, onde aniquilou o maior exército que os romanos xamais reuniran. Despois da morte ou captura de máis de 120.000 soldados romanos en menos de dous anos, moitos dos aliados italianos de Roma, especialmente Capua, desertaron a Cartago, dando a Hannibal control sobre gran parte do sur de Italia. A medida que Siracusa e Macedonia se uniron ao lado cartaginés despois de Canas, o conflito estendeuse. Entre 215 e 210 a.C. os cartagineses intentaron capturar a Sicilia e a Cerdeña, pero non tiveron éxito. Os romanos tomaron medidas drásticas para recrutar novas lexións, matriculando escravos, criminais e aqueles que non cumplían os requisitos habituais de propiedade e así aumentando enormemente o número de homes que tiñan baixo armas. Durante a década seguinte a guerra no sur de Italia continuou, cos exércitos romanos lentamente recapturando a maioría das cidades italianas que se uniran a Cartago.