В Иберии события приняли неожиданный оборот. Едва только армия Сципиона Кальва ушла от Кастулонских гор, как против римлян поднялись илергеты и стали грабить земли их союзников. Римский отряд отбросил илергетов в их земли, но в дело вмешался Гасдрубал. Он развернул идущую на запад армию и выступил против Сципиона. Казалось, что столкновение неминуемо, но стратегическая ситуация вновь изменилась. Подстрекаемые Гнеем Корнелием кельтиберы напали на испанские владения Карфагена и разорили три города. Гасдрубал был вынужден оставить римлян в покое и сражаться против нового врага. Ливий о подвигах кельтиберов во славу Рима пишет в самых превосходных тонах: «
В это время в Иберию прибыл Публий Сципион. Пока в порту Таррагоны высаживались на берег легионеры и разгружались транспортные суда, Публий отправился к брату. На встрече была достигнута принципиальная договоренность, что войну они будут вести «
Сагунт был не случайно выбран целью атаки. Дело в том, что в этом городе содержались заложники от иберийских племен, взятые Ганнибалом накануне похода в Италию. Сагунт был практически неприступен, но, по слухам, имел небольшой гарнизон, и братья Сципионы решили этим обстоятельством воспользоваться. Они были уверены, что, как только заложники окажутся в их руках, многие испанские племена разорвут союз с Карфагеном и перейдут на сторону римлян. Но чтобы этого добиться, надо было штурмовать Сагунт.
Однако для римлян всё закончилось просто замечательно, им даже не пришлось вынимать из ножен мечи. Перебежчик испанец Абелукс сумел обмануть командира гарнизона Сагунта Бостара и хитростью вывести из города всех заложников. После чего передал их в руки римлян. Сципионы решили, что будет гораздо полезнее отпустить всех пленников по домам, и, как показало недалекое будущее, были совершенно правы. Иберийские племена стали массово переходить на сторону римлян, что коренным образом изменило всю стратегическую ситуацию в Испании. Но наступила зима, и боевые действия временно прекратились.
Они возобновились весной 216 г. до н. э. К этому времени братья договорились о том, что Гней возглавит сухопутную армию, а Публий примет командование флотом. Готовился к предстоящей кампании и Гасдрубал, но у него возникли трудности с получением подкреплений. Поэтому он укрепился в труднодоступной местности подальше от Таррагоны и ждал, когда к нему подойдут из Карфагена 4000 пехотинцев и 500 всадников. К тому же именно в это время случилось массовое дезертирство корабельных начальников, которым Гасдрубал не мог простить позорного поражения у устья Ибера. Опасаясь репрессий со стороны командующего, капитаны покинули свои суда, стоявшие в гавани Нового Карфагена, и убежали в земли племени тартесиев. Там им удалось подбить племенную знать к выступлению против Карфагена, и Гасдрубалу вновь пришлось воевать не с римлянами, а с испанцами.
Около города Халба карфагенская армия атаковала иберийцев. Гасдрубал разобрался в обстановке и направил на вражеский лагерь мобильные войска, а конницу распустил по окрестностям. Пока легковооруженные пехотинцы отвлекали находившихся в лагере воинов, кавалеристы перебили в полях массу испанцев, занимавшихся сбором продовольствия. Нанеся противнику значительный урон, Гасдрубал отвел армию на высокий холм и засел там за наспех возведенными земляными укреплениями. Карфагенский командующий хотел победить с минимальными потерями, поскольку впереди предстояли жестокие бои с римлянами. Произошло несколько мелких стычек, но карфагеняне по-прежнему оставались в укрепленном лагере.