Хотя вторжение Ганнибала в Италию и его пребывание на итальянском полуострове в течение шестнадцати лет, безусловно, были главными событиями войны, римляне одержали окончательную победу благодаря победам на пяти второстепенных театрах военных действий, а римский флот сыграл решающую роль, лишив Ганнибала помощи из Карфагена и Испании и сделав бесполезным его пребывание на «носке» итальянского «сапога». Сражаясь с войсками Ганнибала в Италии, Рим одновременно на протяжении двенадцати лет вел боевые действия в Испании, чтобы блокировать действия карфагенян и лишить Ганнибала источника пополнения армии. Девятилетняя кампания в Македонии преследовала ту же цель. В ходе четырехлетней кампании на Сицилии римляне получили доступ к запасам зерна и решили проблему содержания армии, а взятие Сиракуз лишило Ганнибала важного порта, находящегося на полпути между Карфагеном и армией Ганнибала в Южной Италии. В ходе трехлетней кампании в Лигурии римляне блокировали отправившегося на помощь Ганнибалу Магона с 30 тысячами пеших воинов и 2000 всадников, и, несмотря на поддержку лигурийцев и галлов, Магон не смог оказать помощь Ганнибалу.[263]
И наконец, господствующее положение на море дало возможность флоту Сципиона беспрепятственно достигнуть берегов Африки, и на протяжении двух лет римские корабли регулярно курсировали между римской базой на Сицилии и Африкой, доставляя армии все необходимое, в том числе продовольствие. Вторжение римлян в Африку заставило Магона и Ганнибала прекратить боевые действия в Италии и вернуться в Африку.[264]Учитывая римское преимущество на море и имеющиеся в распоряжении Рима людские ресурсы, война Ганнибала была чистым безумием, но у него не было особого выбора. Еще до отправки посольства в Карфаген с требованием выдачи Ганнибала и его командующих за нападение на Сагунт Рим уже в марте 218 года до н. э. остановил свой выбор на войне. Согласно Ливию, к тому времени подготовка к войне против Ганнибала в Испании шла уже полным ходом.[265]
Сенат проголосовал за необходимость выставить шесть легионов в наступающей войне. Публий Корнелий Сципион получил два легиона (14 тысяч пеших воинов и 1600 всадников из союзнических контингентов) и 60 боевых кораблей. Таким образом, всего в его распоряжении находилось 22 тысячи пеших воинов и 2400 всадников. Заместителем был его брат Гней. Задача Публия Сципиона состояла в том, чтобы прийти в Массалию и использовать ее в качестве основной базы, с которой можно будет заблокировать проход к Пиренеям и не позволить Ганнибалу пройти в Галлию. В то время как Сципион должен был блокировать наступление Ганнибала, вторая армия под командованием Тиберия Семпрония Лонга должна была выдвинуться на Сицилию и подготовиться к вторжению в Африку и нападению на Карфаген. В состав армии Семпрония входили 24 тысячи римских и союзных пеших воинов, 2400 всадников и 160 боевых кораблей для защиты конвоев.Кроме того, римляне отправили еще два легиона с 10 тысячами пеших воинов-союзников и 1000 всадников-союзников под командованием Луция Манлия Вольсона в Цизальпинскую Галлию на случай возможного восстания галлов.[266]
Эти передвижения армий и публичное объявление войны римским сенатом, вероятно, были замечены агентами Ганнибала. Самое позднее в конце апреля Ганнибалу стало известно, что Рим собирается развязать с ним войну.Теперь Рим захватил в свои руки стратегическую инициативу, и Ганнибалу ничего не оставалось, как защищаться. Если бы он так сделал, то Испанию постигла участь Сицилии в Первую Пуническую войну и она бы стала полем битвы по уничтожению людей и ресурсов только для того, чтобы в конце концов достаться римлянам, имевшим превосходство в людских ресурсах и кораблях. Ганнибал мог одержать победу над одной армией, чтобы тут же столкнуться с другой, пришедшей ей на смену. С небольшим количеством боевых кораблей Ганнибал не мог помешать римлянам высадиться на любом участке испанского побережья. Самое важное, что война с римлянами в Испании оставляла Африку открытой для вторжения, а сам Карфаген открытым для нападения. Переход к обороне означал несомненное поражение в Испании и возможную оккупацию римлянами Карфагена. Ганнибал должен был забрать инициативу в свои руки, чтобы получить хоть какой-то шанс и сорвать стратегический план римлян, а для этого, во-первых, помешать Сципиону заблокировать наступление карфагенской армии и, во-вторых, с помощью кораблей, базировавшихся в Африке, приостановить вторжение римлян и, возможно, вообще предотвратить его. Ганнибалу, чтобы получить шанс на победу, следовало напасть на Италию. У него просто не было другого выхода.