Hannibal brukte en unnskyldning i 219 f.Kr. for å angripe landsbyen Saguntum som stod under spesiell beskyttelse av Roma. Ifølge romerske tradisjoner, hadde Hannibal sverget hat mot Roma, og han tok i hvert fall ikke en forsonende holdning da romerne irettesatte ham for å ha krysset elven Iberus, som Kartago gjennom traktat skulle holde seg sør for. Sannheten for mer nøytrale historikere, derimot, er at Hannibal sverget på alteret til Ba'al «aldri å være venn av Roma», ifølge den mer objektive Polybios. Hannibal krysset ikke Iberus-elven bevæpnet, Saguntum nær dagens Valencia lå sør for elven, og saguntinerne provoserte frem hans angrep ved å angripe deres nabostammer som var under Kartagos beskyttelse og ved å massakrere propuniske fraksjoner i sin egen by. Roma hadde ikke noen lovlig beskyttelsespakt med stammer sør for Iberus. Da det kartagenske senatet ble bedt om å overgi Hannibal, nektet senatet umiddelbart og Roma erklærte krig mot Kartago.