Hannibal wurde 221 v. Chr. nach Hasdrubals Ermordung Oberbefehlshaber des Heeres. Sogleich führte er einen Feldzug gegen die noch unabhängigen iberischen Stämme. In einer Schlacht am Tajo gegen die Carpetani siegte Hannibal in offener Feldschlacht über einen zahlenmäßig weit überlegenen Gegner. Die Stadt Sagunt an der Mittelmeerküste verweigerte die Unterwerfung. Hannibal belagerte die Stadt ab 220 v. Chr., auch, um ihren Einfluss auf die iberischen Stämme einzugrenzen. Die Sagunter schlossen daraufhin ein Bündnis mit Rom. Römische Gesandte forderten Hannibal auf, die Belagerung der Stadt abzubrechen. Dieser lehnte jedoch ab, da Sagunt die mit Karthago verbündeten Turboleten angegriffen hatte und Hannibal ihnen nur zur Hilfe kam. Hannibal fragte in Karthago bezüglich eines weiteren Vorgehens an. Unklar ist es, welche der beiden Seiten vertragsbrüchig wurde.