Wojna pomiędzy Kartaginą a Rzymem, nazwana później II wojną punicką, toczyła się już siedemnasty rok. Współcześni nam historycy nazwali ją słusznie „wojną światową starożytności”. Były to jedne z największych zmagań epoki, a ich wynik, z czego zdawano sobie sprawę już wówczas, miał zdecydować o kształcie ówczesnego świata. W 202 r. p.n.e. w Afryce Północnej, na terytorium kontrolowanym przez Kartaginę, nieopodal miejscowości Zama (w dzisiejszej Tunezji), stanęły przeciw sobie dwie armie. Kartagińska ze słynnym Hannibalem oraz rzymska dowodzona przez Publiusza Korneliusza Scypiona, najwybitniejszego wodza w historii Republiki. Obaj, dotąd zwycięzcy, nie przegrali żadnej bitwy, obaj też mieli pod swoimi rozkazami najlepsze oddziały złożone głównie z zaprawionych w walce weteranów.
Znana opowieść mówi o przysiędze, jaką dziewięcioletni Hannibal złożył swojemu ojcu Hamilkarowi Barkasowi, ślubując wieczną nienawiść do Rzymian. Choć ci ostatni lubili podkreślać własne cnoty i przedstawiać się jako sprawiedliwi i zawsze dotrzymujący słowa, pierwsza wojna pomiędzy dwiema republikami wybuchła z powodu wiarołomstwa Rzymian – mimo zawiązanego i wciąż obowiązującego sojuszu niesprowokowani zaatakowali posiadłości kartagińskie na Sycylii. I właśnie o kontrolę nad tą bogatą wyspą toczyła się długa, bo ponaddwudziestoletnia wojna, podczas której Rzymianie po raz pierwszy walczyli na morzu.
Hamilkar, wielki wódz z czasów I wojny punickiej, miał powody, by nienawidzić Rzymian – opuszczony na Sycylii przez rządzących Kartaginą, upokorzony koniecznością negocjowania niekorzystnego pokoju, zdawał sobie sprawę z nieuchronności rozstrzygającego konfliktu. Po zakończeniu walk na Sycylii udanie stłumił niebezpieczny, trwający trzy lata bunt nieopłaconych najemników, po czym zdecydował się na podbój południowej Hiszpanii (237 r.