Après avoir assumé le commandement, Hannibal passe deux ans à consolider les possessions hispaniques et à terminer la conquête des territoires au sud de l'Èbre. Cependant, Rome, redoutant la puissance grandissante d'Hannibal en Hispanie, conclut une alliance avec la ville de Sagonte, pourtant située à une distance considérable au sud de l'Èbre dans la zone reconnue à l'influence carthaginoise, et déclare la cité sous son protectorat. L'argumentaire romain s'appuie sur le traité de 241 av. J.-C. qui interdit à Carthage de s'attaquer à un allié de Rome tandis qu'Hannibal met en avant le traité signé par Hasdrubal qui lui reconnaît la souveraineté carthaginoise au sud de l'Èbre. Hannibal encercle Sagonte et mène le siège de la ville qui tombe en 219 av. J.-C., probablement au mois de novembre, après huit mois. Rome réagit à ce qu'elle considère comme une violation du traité et réclame justice auprès du gouvernement carthaginois. En raison de la grande popularité d'Hannibal et du risque de perte du prestige carthaginois en Hispanie, le gouvernement oligarchique de Carthage ne renie pas ces actions et la guerre à laquelle le général avait pensé, la deuxième guerre punique, est déclarée à la fin de l'année.