Разведав местонахождение вражеских армий, он обратил внимание, что все они находятся не менее чем в десяти днях пути от столицы пунийской Испании. Более того, выяснилось, что городской акрополь охраняет отряд, насчитывающий всего около тысячи человек, а многочисленное ремесленное население в военном отношении представляет скорее обузу. Новые разведданные оказались еще более обнадеживающими. Как рассказали рыбаки, море вблизи города очень мелко, во многих местах проходимо вброд, и обычно каждый вечер наступает сильный отлив. Собрав все эти сведения воедино, Сципион в течение зимы разработал и продумал план, столь же дерзкий, сколь и гениальный (Полибий, Х, 8).
Операция готовилась Сципионом в строжайшей секретности, и только его друг и начальник флота Гай Лелий был посвящен во все подробности (Полибий, Х, 9, 1).
В начале весны 209 г. до н. э. Сципион переправился через Ибер, взяв с собой двадцать пять тысяч пехотинцев и две с половиной тысячи всадников. Параллельно ему продвигался флот во главе с Гаем Лелием. Охранять земли к северу от Ибера остался Марк Юний Силан с тремя тысячами пехоты и тремястами или пятьюстами всадниками.
На седьмой день пути римляне достигли Нового Карфагена. Казалось, что с точки зрения обороны город расположен очень удобно. Находясь на полуострове в глубине большого залива и окруженный со всех сторон морем, Новый Карфаген был соединен с материком узким перешейком (Полибий определял его ширину не более чем в две стадии). На этом-то перешейке Сципион и приказал разбить лагерь, закрыв тем самым выход из города, а флот блокировал гавань. При этом, чтобы не стеснять себе возможность для атаки и держать пунийцев в напряжении, сторона римского лагеря, обращенная к полуострову, никак не укреплялась.
После этого Сципион обратился к воинам с речью, объясняя цель похода, выгоды в случае победы («взяв этот город, вы завоюете всю Испанию») и обещая награды отличившимся при штурме. Для подкрепления уверенности в будущем успехе он сказал, что сам Нептун, явившись ему во сне, подсказал план операции и гарантировал свою помощь (Полибий, Х, 11, 5–8; Ливий, XXVI, 43, 2–9).
Тем временем Магон, комендант города, готовился к отражению штурма. Разделив гарнизон, одну его часть он оставил для охраны цитадели, другую разместил на одном из холмов в восточной части города. Так как сил было явно недостаточно, он вооружил две тысячи наиболее пригодных горожан, поставив их у ворот, ведущих на перешеек, а также вдоль стен (Полибий, Х, 12, 2–3; Ливий, XXVI, 44, 1–2).
На следующий день римляне начали штурм. Магон, не желая отсиживаться за стенами, сразу же бросил на вылазку отряд горожан. На перешейке закипел ожесточенный бой, успех в котором первое время не склонялся ни к одной из сторон. Понимая, насколько чувствительным станет поражение для и без того немногочисленного вражеского гарнизона, Публий поставил своих солдат поблизости от лагеря, что давало возможность беспрепятственно поддерживать сражавшихся, в то время как для карфагенян посылка подкреплений была затруднена. Именно этот фактор и решил исход боя. Не выдержав натиска превосходящих сил противника, карфагеняне с большими потерями отступили. При виде постигшей их отряд неудачи горожане запаниковали и начали бросать свои посты на стенах. Сципион, который в сопровождении трех щитоносцев все время находился в гуще событий, дал сигнал продолжить приступ. Но даже с самой небольшой охраной стены Нового Карфагена представляли собой очень серьезную преграду. Высота их была такова, что многие штурмовые лестницы ломались под тяжестью солдат, успевших на них залезть, а поднявшихся доверху не составляло труда сбросить. Ободренные этим, бежавшие ранее карфагеняне вернулись на стены и отбили все попытки римлян их занять.
Сципион дал сигнал к отступлению, но только для того, чтобы заменить отряды штурмующих на свежие. Тем временем начался отлив. Из бесед с рыбаками римский полководец знал, что в такое время морская лагуна, прикрывавшая город с запада, сильно мелеет и глубина ее в некоторых местах доходит только до колен. Видя это, легионеры вспомнили слова Сципиона о помощи, обещанной ему Нептуном, с новым рвением пошли вперед и, построившись черепахой, достигли ворот. В то же самое время заранее выделенный отряд в пятьсот человек под руководством местных проводников прошел по дну обмелевшей лагуны до городских стен, которые с этой стороны никто не охранял. Легионеры беспрепятственно приставили лестницы и, не встречая сопротивления, проникли в город. Ворота были взломаны с двух сторон, и вот уже основные силы римлян вступили в город (Полибий, Х, 13, 11; 14; 15, 1–3; Ливий, XXVI, 45, 6–9; 46, 1–7).
Отдав приказ убивать всех встречных, Сципион поделил армию – часть атаковала пунийцев, занимавших холм, а сам с тысячью воинов пошел к цитадели. Холм был взят с ходу, а Магон, видя, что дело проиграно, капитулировал. После этого повальные убийства прекратились, и римляне занялись систематическим грабежом.