Mais la méfiance mutuelle entre Rome et Carthage conduit à la deuxième guerre punique lorsque Hannibal Barca, membre de la puissante famille carthaginoise des Barcides, s'empare après un long siège (-219/-218) de Sagonte, une cité ibère ayant des liens diplomatiques avec les Romains. Hannibal lève une armée et se dirige sur l'Italie, opérant notamment sa célèbre traversée des Alpes. Hannibal remporte sa première victoire sur les Romains au Tessin lors d'un petit combat de cavalerie. Il remporte ensuite des succès beaucoup plus importants lors des batailles de la Trébie, du lac Trasimène et de Cannes, considérée comme un chef-d'œuvre tactique, et parait alors capable de battre les armées romaines à volonté.