Город располагался на полуострове, который с двух сторон омывали воды залива, причем с запада находилась та самая мелководная лагуна, где, по словам рыбаков, периодически случались приливы и отливы. У входа в залив находился небольшой остров, защищавший гавани от дующих с моря ветров. С материком полуостров соединял узкий перешеек шириной в 250 шагов (Liv. XXVI, 42). Лагуна соединялась с морем искусственным каналом, через который для удобства местных жителей был переброшен мост. Недалеко от ворот, выходящих в сторону моста, возвышалась цитадель, где в случае прорыва главной линии обороны могли укрыться защитники. Внимательно изучив расположение стен и башен, Сципион спустился с холма, собрал легатов и дал распоряжения относительно завтрашнего штурма. После чего вызвал командиров кораблей и приказал им всю ночь держать экипажи в полной боевой готовности, поскольку опасался выхода вражеских судов из городской гавани. Затем собрал легионеров и объявил, что завтрашний день решит судьбу войны в Испании. Пусть воины идут в битву без страха, победа будет за квиритами, а кто первый взойдет на стены города, будет увенчан золотым венком. Особо отличившиеся бойцы также получат награду за храбрость. Сам бог Нептун недавно явился Сципиону во сне и обещал свою помощь во время штурма Нового Карфагена, в этом римляне убедятся очень скоро. Распустив войска, Публий удалился в свою палатку и стал в очередной раз обдумывать план грядущего штурма, стараясь не упустить из виду какой-либо мелочи.
Всю ночь из римского лагеря доносился шум работ, легионеры собирали осадные приспособления и метательные машины. Никто не ведал, что сулит им грядущее.
Командир карфагенского гарнизона Магон нисколько не испугался, увидев римлян под стенами города. Под его началом было 10 000 бойцов, стены Нового Карфагена высоки и крепки, а оружия и продовольствия в городе более чем достаточно. Как только два Гасдрубала и Магон узнают о том, что Новый Карфаген в осаде, они сразу же придут на помощь городу и римская армия окажется между молотом и наковальней. В этом случае шансов на победу у врагов не будет. Командиру Магону надо было укрыться за городскими стенами, отбивать римские атаки и ждать, когда подойдет помощь. Но Магон мыслил иначе и считал, что лучший способ защиты – это нападение. Он не собирался отсиживаться в обороне, а планировал сам ударить по врагу, как только для этого появится удобный момент. Командир внимательно следил за римскими передвижениями на перешейке и в итоге пришел к выводу, что на следующее утро последует вражеская атака. Магон лично обошел стены и проверил состояние метательных машин, осмотрел запасы стрел, дротиков и копий, распорядился сложить у парапета как можно больше камней. Пять сотен отборных солдат командующий разместил в цитадели, а ещё пять сотен бойцов на восточной стороне холма, господствующего над Новым Карфагеном. Расставив воинов по всему периметру крепостных стен, главные силы Магон поставил у городских ворот и стал ждать вражеского наступления.
Утром римляне пошли на штурм Нового Карфагена. Вперед Сципион выдвинул отряд из отборных легионеров численностью до 2000 человек, и под его прикрытием римляне стали двигать к стенам осадную технику. Легионеры тащили лестницы, несли навесы, катили на позиции тараны и метательные машины. Командующий гарнизоном стоял на башне в окружении военачальников и наблюдал, как развивается вражеское наступление. Защищая глаза от солнечных лучей, он постоянно прикладывал ладонь к козырьку шлема и время от времени отдавал короткие приказы. Вскоре Магон подозвал одного из младших командиров и распорядился, чтобы ливийские пехотинцы положили копья и атаковали противника с мечами в руках. Их задачей было отбросить передовой отряд римлян и уничтожить вражескую осадную технику. Услышав приказ, ливийцы приставили копья к стене, вытащили из ножен фалькаты и построились в глубокую колонну. Со скрипом распахнулись тяжелые створы ворот, и лавина карфагенских воинов устремилась на римлян. Африканцы врубились в неприятельские ряды и стали теснить врага.
Легионеры отчаянно отбивались от наседавших пунийцев, но карфагеняне бились настолько храбро и умело, что заставили противника отступать всё дальше и дальше. Римляне, идущие во втором эшелоне, оставили осадную технику и поспешили на помощь товарищам, но и этих сил оказалось недостаточно. Ливийская пехота наращивала натиск, легионеров отбросили к самому лагерю, и карфагеняне стали разрушать брошенную врагом осадную технику. Сципион не ожидал столь массированной атаки и оказался застигнут врасплох. Узость перешейка, где развернулось сражение, не позволяла римскому полководцу использовать численное преимущество и охватить противника с флангов. Поэтому Публий Корнелий был вынужден отправить гастатов в лобовую атаку.