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