Em 217 a.C., Aníbal havia já infligido aos romanos uma grande derrota na Batalha do Lago Trasimeno, mas, depois, ao invés de seguir direto para Roma, preferiu levar suas forças para a região da Apúlia, provavelmente para esperar ali reforços que estavam programados para vir da Sardena e da Península Ibérica, possessões cartaginesas, mas que não chegaram. Uma frota cartaginesa foi bloqueada na costa do mar Tirreno pela marinha romana comandada por Cneu Servílio Gêmino enquanto, na Ibéria, os irmãos Cneu Cornélio Cipião e Públio Cornélio Cipião (respectivamente tio e pai de Cipião Africano) obrigaram as forças cartaginesas a assumirem posições defensivas.