A contínua desconfiança entre Roma e Cartago levou a novas hostilidades na Segunda Guerra Púnica, quando Aníbal, um membro da família bárcida da nobreza cartaginesa, atacou Sagunto, uma cidade com laços diplomáticos com Roma. Aníbal então preparou um exército na Ibéria e, em , atravessou os Alpes italianos com elefantes para invadir a Itália. Auxiliado por tropas gaulesas, conseguiu derrotar no mesmo ano os romanos em duas batalhas e avançar pela península. Prosseguindo em sua marcha, confrontou-se com os romanos nos anos posteriores, uma delas em Canas, uma das maiores derrotas da história romana. Depois de Canas, Aníbal obteve novas vitórias e adquiriu territórios no sul da Itália, bem como conseguiu a lealdade de várias povoações em Cápua e Apúlia. Além disso, conseguiu forjar alianças com ex-aliados romanos, dentre eles Tarento, por , assim como com o rei de Siracusa e Filipe V da Macedônia. Embora tendo firmado várias alianças com os poderes italianos, a situação de Aníbal começou a esfacelar-se nos anos seguintes, em especial pela mudança da tática romana, que privilegiou, ao invés de batalhas abertas, o combate numa guerra de exaustão. Com isso, os romanos, não só passaram a gradualmente retomar os territórios perdidos, como chegaram a saquear Siracusa em , esmagaram uma revolta geral na Sicília e impediram o avanço cartaginês na Ibéria mediante uma série de expedições. Além disso, conseguiram destruir completamente o exército cartaginês que havia invadido a Itália pelos Alpes sob Asdrúbal. Por , por ainda não serem capazes de expulsar Aníbal da Itália, os romanos lançaram uma expedição na África, com intuito de atacar Cartago. Após derrotarem um exército cartaginês, Aníbal se viu forçado a retornar para a África onde confrontou-os na batalha de Zama de , que terminou numa decisiva vitória romana. Isso levou Cartago a pedir a paz.