Wojna z Rzymem mały|lewo|II wojna punicka Aby uprzedzić rzymski atak, Hannibal zadecydował o skierowaniu działań wojennych na terytoria przeciwnika. Liczył na wsparcie ludów galijskich i italskich we wspólnej walce przeciw rzymskiej ekspansji. Z powodu przewagi przeciwnika na morzu Kartagińczycy musieli przemaszerować do Italii drogą lądową: przez Hiszpanię, południową Galię i Alpy Zachodnie do Galii Przedalpejskiej i Italii. W sierpniu 218 roku armia pod dowództwem Hannibala w sile 50 tysięcy pieszych i 9000 konnych przekroczyła Pireneje, podczas gdy w Hiszpanii pozostały 15-tysięczne oddziały pod wodzą Hazdrubala. We wrześniu Kartagińczycy przekroczyli Rodan, po czym przeszli przez Alpy, prawdopodobnie przełęczą Mont-Cenis; do Italii przeprawiło się 20 tysięcy piechoty i 6000 jazdy, lecz szeregi punickiej armii zgodnie z przewidywaniami Hannibala zasiliły oddziały celtyckich Insubrów i Bojów. Po zregenerowaniu armii, w listopadzie Hannibal pokonał armię Publiusza Korneliusza Scypiona nad rzeką Ticinus, w grudniu rozbił połączone armie konsularne nad Trebią, a w roku 217 ominął stacjonującą pod Arretium armię konsula Gajusza Flaminiusza, po czym wprowadził ją w zasadzkę i 23 czerwca doszczętnie rozgromił nad Jeziorem Trazymeńskim.