Тем временем ситуация ухудшалась с каждым днем, и Гасдрубал попробовал договориться с Гулуссой. Если римляне снимут осаду, карфагеняне согласятся на любые их условия.
Сципион сказал сразу — «нет», но Гулусса уговорил его хотя бы «подумать». В следующем году истекают консульские полномочия Сципиона, на все готовое придет новый консул и заберет победу себе. Тогда Сципион сказал, что обещает жизнь только Гасдрубалу с семьей и еще десяти семьям, которые тот назовет. Разрешается забрать с собой десять талантов или всех рабов. На этом все. Гасдрубал это предложение отверг.
Сципион, впрочем, и не рассчитывал, что тот согласится, и продолжал заниматься делами осады. Для окончательной блокады Карфагена следовало отрезать его от всякой связи с морем. Поэтому выход в гавань следовало для карфагенян закрыть. Римляне принялись сооружать насыпь. Карфагеняне пытались прокопать новый выход к морю — на другой стороне гавани. Женщины, дети — все принимали участие в этой безнадежной затее.
Строили корабли из любой древесины, какую находили под рукой. И соорудили, как говорят, сто двадцать кораблей, которые через эту новую гавань вышли в море. То была последняя надежда отчаявшихся людей.
Корабли римлян между тем были оставлены без присмотра — или почти без присмотра; все, включая гребцов, работали на осаде.
Дальнейшее не вполне понятно. Историки дружно утверждают, что, если бы карфагенский флот, «возрожденный из пепла», сразу атаковал безоружные корабли римлян, те лишились бы своего флота. Вопрос — почему пунийцы этого не сделали? Для чего вышли в море — просто «посмеяться над противником», показать ему свою силу и как следует запугать? Трудно представить себе что-нибудь более глупое: зачем раскрывать свои карты такому сильному противнику, как Сципион, и давать ему время опомниться и подготовиться к отражению атаки? А как же фактор внезапности?
Существовала какая-то другая, более простая причина, почему карфагенский флот не напал на римлян сразу. Возможно, то были не сто двадцать кораблей, а гораздо меньше. Или они были оснащены гораздо хуже и нападать не могли. Но остается непроясненным вопрос, для чего они вообще показались перед римлянами.
Так или иначе, римляне получили предупреждение о возможном нападении с моря. Они привели свои боевые корабли в порядок и вышли навстречу карфагенянам. Те только на третий день осмелились дать морской бой. Карфагеняне тем не менее возлагали немалые надежды на это сражение, каковое, впрочем, не принесло перевеса ни одной из сторон.
Карфагеняне нанесли римлянам ущерб, но завершить битву не смогли — наступила ночь. Утром римляне оттеснили их в гавань и осадили. Ночью карфагеняне устроили вылазку и подожгли осадные башни и машины противника. Пока римляне паниковали, а Сципион успокаивал их, приказав убивать всех паникеров и дезертиров, карфагеняне вернулись под защиту городских стен.