Aan het einde van de Eerste Punische Oorlog, in B.C. 241, Carthago stemde ermee in om een steile eerbetoon aan Rome te betalen, maar het leegmaken van de schatkist was niet genoeg om de Noord-Afrikaanse natie van handelaren en kooplieden te verwoesten: Rome en Carthago zouden binnenkort weer vechten.
In de tussentijd tussen de Eerste en Tweede Punische oorlogen (ook bekend als de Hannibalic War), veroverde de Fenicische held en militair leider Hamilcar Barca een groot deel van Spanje, terwijl Rome Corsica veroverde. Hamilcar verlangde ernaar wraak te nemen op de Romeinen voor de nederlaag in Punische oorlog I. Realiserend dat dat niet zo was, onderwees hij haat tegen Rome aan zijn zoon Hannibal.
De Tweede Punische Oorlog brak uit in B.C. 218 toen Hannibal de controle over de Griekse stad en de Romeinse bondgenoot Saguntum (in Spanje) overnam. Rome dacht dat het gemakkelijk zou zijn om Hannibal te verslaan, maar Hannibal was vol verrassingen, waaronder zijn manier om vanuit Spanje het Italiaanse schiereiland te betreden. Met het verlaten van 20.000 troepen met zijn broer Hasdrubal, ging Hannibal verder naar het noorden op de rivier de Rhône dan de Romeinen hadden verwacht en stak de rivier over met zijn olifanten op drijfmiddelen. Hij had niet zoveel mankracht als de Romeinen, maar hij rekende op de steun en alliantie van Italiaanse stammen die ongelukkig waren met Rome.
Hannibal bereikte de Po-vallei met minder dan de helft van zijn mannen. Hij had ook onverwachte weerstand ondervonden van lokale stammen, hoewel hij erin geslaagd was om Galliërs te werven. Dit betekende dat hij 30.000 troepen had tegen de tijd dat hij de Romeinen ontmoette in de strijd.
Hannibal won veldslagen in Trebia en bij het meer van Trasimene en vervolgde vervolgens de bergen van de Apennijnen die als een ruggengraat door heel Italië liepen. Met troepen uit Gallië en Spanje aan zijn zijde won Hannibal een nieuwe strijd, in Cannae, tegen Lucius Aemilius. Bij de Slag om Cannae verloren de Romeinen duizenden troepen, waaronder hun leider. De historicus Polybius beschrijft beide kanten als dapper. Hij schrijft over de aanzienlijke verliezen:
Polybius, The Battle of Cannae
"Van de infanterie werden 10 duizend gevangenen gevangen genomen in een eerlijke strijd, maar waren niet echt betrokken bij de strijd: van degenen die feitelijk slechts ongeveer drieduizend waren verloofd, ontsnapten misschien naar de steden van het omliggende district; de rest stierf edel, aan de aantal van 70 duizend, de Carthagers zijn bij deze gelegenheid, evenals bij vorige, vooral dank verschuldigd voor hun overwinning op hun superioriteit in cavalerie: een les voor het nageslacht dat het in werkelijke oorlog beter is om de helft van het aantal infanterie te hebben, en de superioriteit in cavalerie, dan om je vijand gelijk te maken in beide. Aan de zijde van Hannibal vielen er vierduizend Kelten, 15 honderd Iberiërs en Libiërs en ongeveer tweehonderd paarden. "
Naast het vernietigen van het platteland (wat beide partijen deden in een poging om de vijand te verhongeren), terroriseerde Hannibal de steden van Zuid-Italië in een poging om bondgenoten te krijgen. Chronologisch past de eerste Macedonische oorlog van Rome hier (215-205), toen Hannibal zich verenigde met Philip V van Macedonië.
De volgende generaal die Hannibal confronteerde, was succesvoller - dat wil zeggen, er was geen beslissende overwinning. De senaat in Carthago weigerde echter voldoende troepen te sturen om Hannibal in staat te stellen te winnen. Dus wendde Hannibal zich tot zijn broer Hasdrubal voor hulp. Helaas voor Hannibal, werd Hasdrubal gedood onderweg om zich bij hem te voegen, het markeren van de eerste beslissende Romeinse overwinning in de Tweede Punische Oorlog. Meer dan 10.000 Carthagers stierven in de Slag om Metaurus in B.C. 207.
Ondertussen viel Scipio Noord-Afrika binnen. De Carthaagse senaat reageerde door Hannibal terug te roepen.
De Romeinen onder Scipio vochten tegen de Feniciërs onder Hannibal in Zama. Hannibal, die niet langer over voldoende cavalerie beschikte, kon zijn voorkeurstactieken niet volgen. In plaats daarvan stuurde Scipio de Carthagers met dezelfde strategie die Hannibal bij Cannae had gebruikt.
Hannibal maakte een einde aan de Tweede Punische Oorlog. Scipio's strenge voorwaarden voor overgave waren:
De voorwaarden bevatten een aanvullende, moeilijke voorwaarde: