Erano circa trent'anni che Roma non si fronteggiava più coi cartaginesi e la nuova guerra che si prepara ad affrontare sarà assai tremenda e peggiore della prima. Oltrepassate le Alpi con l'esercito, Annibale sconfisse l'esercito di Roma in varie battaglie incluse quella del lago Trasimeno e di Canne nel 216 a.C. Respinti in Spagna i romani grazie a Scipione incominciano a ricacciare a sconfiggere il nemico. In Iberia già condottieri come Amilcare e Asdrubale Barca erano stati debellati, ed ora è la volta anche di Annibale. In passato questi due avevano già conquistato parte della Spagna e vi avevano fondato anche molte colonie instaurano un governo simile a quello di Sparta, assai duro e freddo. Quando Annibale prese Sagunto, città fondamentale dell'Iberia, la reazione di Roma fu immediata. Infatti i romani non tolleravano affatto il non rispetto delle leggi dell'ospitalità e delle delegazioni, violate ignobilmente da Annibale quando assediò la città e così ripresero lo scontro, vincendolo. Annibale, sconcertato della vittoria, verrà sconfitto altre volte da Roma capeggiata da Scipione fino alla battaglia definitiva di Zama nel 202 a.C. dove la guarnigione di Annibale fu completamente debellata. Lo stesso generale per non cadere prigioniero si uccise. Pausania descrive precisamente tutti gli eventi nefasti che contribuirono alla sua fine. Inizialmente recatosi a Delfi per avere notizie della sua sorte, Annibale inizia a preoccuparsi e le sue paure vengono confermate quando giunge presso l'oracolo del dio Ammone in Egitto. Inoltre come se non bastasse Annibale era inseguito da molto tempo da una spedizione romana capeggiata dal condottiero Flaminio e ciò portò il comandante cartaginese a togliersi la vita.