기원전 218년 5월 한니발은 보병 4만 명, 기병 8,000명, 전투 코끼리 37마리를 이끌고 피레네 산맥을 넘었다. 로마는 즉시 2개의 군대를 편성하여 시칠리아와 마실리아로 나누어 보냈다. 한니발은 로마의 허점을 찔러 갈리아를 가로질러 바로 알프스 산맥을 넘어 이탈리아에 이르렀다. 험준한 알프스를 넘으면서 그의 병력은 보병 2만 명, 기병 6,000명으로 줄었다. 그해 11월 로마군과 카르타고군은 티키누스에서 처음 만났다. 티키누스 전투에서 집정관 푸블리우스 코르넬리우스 스키피오가 이끄는 로마군은 카르타고의 기병에 밀려 패했고 이어서 트레비아강에서 벌어진 트레비아강 전투에서도 기병과 보병이 모두 맞붙었으나 한니발의 전술에 밀려 로마군은 대패했다. 이로써 로마는 알프스 남쪽의 갈리아지방을 포기할 수밖에 없었다.