W 221 roku p.n.e. zginął wódź Kartagińczyków – Hazdrubal. Po jego śmierci dowództwo objął – mający wówczas 25 lat, syn Hamilkara – Hannibal. Pomimo młodego wieku był on już doświadczonym dowódcą. Ojciec wychowywał go w tradycji nieprzejednanej nienawiści do Rzymu. Hannibal rozpoczął systematyczne przygotowania do wojny z Rzymem, która miała zrekompensować straty poniesione przez Kartaginę.
Dążenia Hannibala do wybuchu wojny, potrzebowały jednak punktu zapalnego, który stałby się bezpośrednią przyczyną konfliktu. W roku 219 p.n.e. zaatakował, a następnie zdobył miasto Sagunt. Rzymianie uznali, że jest to pogwałcenie traktatu pokojowego z roku 226 p.n.e., wypowiadając tym samym wojnę Kartaginie.
Jedyną możliwością działania dla Hannibala było przeniesienie działań wojennych na tereny Italii, zdawał sobie sprawę, że po pierwszej wojnie punickiej, flota kartagińska nie dorównuje w żadnym stopniu flocie rzymskiej. Dodatkowo liczył na przyłączenie się do wojny przeciwko Rzymowi Galów oraz niektórych miast greckich.
Plany Hannibala, przeddzień wojny, miały tylko jeden zasadniczy słaby punkt – atakując bezpośrednio Italię lądem, był w dużej mierze uzależniony od Hiszpanii, która miała stać się jego główną bazą zaopatrzeniową. W przypadku odcięcia Hiszpanii, wojna byłaby praktycznie przesądzona.