Между тем наступил конец года и вместе с ним смена главного командования. Консул Луций Писон, явившийся в армию с большим опозданием (606) [148 г.], принял начальство над сухопутной армией, а Луций Манцин стал во главе флота. Но если их предшественники добились немногого, то при новых военачальниках дело совершенно не двигалось вперед. Вместо того чтобы осаждать Карфаген или выступить против армии Гасдрубала, Писон производил нападения на мелкие приморские финикийские города — большей частью тоже безуспешно. Так, например, город Клупея отразил его нападение; осада Гиппона Диарита длилась все лето; осажденные два раза сжигали осадные машины римлян, и последние в конце концов позорно отступили. Город Неаполь, правда, был взят, но разграбление его в нарушение данного слова не могло содействовать дальнейшим успехам римского оружия. Карфагеняне воспрянули духом. Нумидийский шейх Вифий с 800 всадников перешел на их сторону. Послы карфагенян пытались завязать сношения также с царями нумидийским и мавретанским и даже с македонским лже-Филиппом. Пожалуй, не столько военные действия римлян, сколько внутренние раздоры среди самих карфагенян помешали тому, чтобы их дела приняли еще более благоприятный оборот. Так, эмигрант Гасдрубал возбудил недоверие к другому Гасдрубалу, бывшему военачальником в городе; поводом для подозрений послужило родство последнего с Массиниссой, и он был убит в здании городского совета.
Чтобы создать перелом в тревожном положении дел в Африке, Рим решил прибегнуть к чрезвычайной мере — назначить главнокомандующим единственного человека, стяжавшего славу на поле сражений в Ливии и носившего имя, которое как бы предопределяло его для этой войны. Решено было вместо должности эдила, которой Сципион добивался в это время, предоставить ему консулат до установленного срока, отменив законы, запрещавшие это, и вместе с тем специальным постановлением поручить ему ведение войны в Африке. Сципион прибыл в Утику (607) [147 г.] в очень важный момент. Римский адмирал Манцин, на которого Писон возложил номинальное продолжение осады, занял крутую скалу, отдаленную от города и почти не защищаемую; она находилась на малодоступной стороне предместья Магалии. Здесь Манцин сосредоточил почти весь свой немногочисленный отряд, надеясь, что ему удастся проникнуть отсюда в предместье. Действительно, нападающие уже проникли было в ворота, и весь лагерный сброд массами устремился в Магалию в надежде на добычу. Но карфагеняне оттеснили врага к скале, где римляне очутились в крайней опасности, так как не имели продовольствия и были почти совершенно отрезаны. Такое положение застал Сципион. Он немедленно посадил на корабли прибывшие с ним войска и ополчение города Утики и отправил их к угрожаемому пункту. Им удалось спасти находившийся там отряд и удержать за собой скалу. Устранив, таким образом, ближайшую опасность, новый главнокомандующий отправился в лагерь Писона, чтобы принять начальство над войском и повести его обратно к Карфагену. Но Гасдрубал и Вифий, воспользовавшись его отсутствием, передвинули свой лагерь к самому городу и возобновили нападение на римский отряд, стоявший на скале у Магалии. Однако и на этот раз Сципион вовремя прибыл на помощь с авангардом своих главных сил. После этого римляне возобновили осаду и вели ее упорнее прежнего. Сципион прежде всего очистил лагерь от всякого сброда и от маркитантов и снова ввел строгую дисциплину. Скоро оживились и военные действия. Римляне ночью пошли приступом на предместье. Придвинув к стене осадную башню одинаковой высоты с зубцами стены, они перебрались на стену и отворили небольшую калитку, через которую устремилось все римское войско. Карфагеняне сдали предместье и лагерь у городских ворот и поручили Гасдрубалу главное начальство над городским гарнизоном, состоявшим из 30 000 человек. Новый комендант проявил свою энергию прежде всего в том, что приказал вывести на стены всех взятых в плен римских солдат, подвергнуть их жестоким истязаниям и затем сбросить вниз на глазах у осаждающей армии. Когда этот поступок вызвал порицания, введен был террор и против карфагенских граждан.
Сципион, заперев осажденных внутри города, старался совершенно отрезать его от сообщения с внешним миром. Свою главную квартиру он расположил на перешейке, соединяющем карфагенский полуостров с материком. Здесь, несмотря на неоднократные попытки карфагенян помешать его предприятию, он построил большой укрепленный лагерь во всю ширину перешейка, совершенно отрезавший сообщение с городом со стороны материка. Но в гавань все еще приходили суда с продовольствием: ладьи отважных купцов устремлялись сюда в погоне за прибылью, корабли Вифия пользовались каждым попутным ветром, чтобы доставлять в Карфаген продовольствие из города Нефериса, находившегося на берегу Тунисского залива. Поэтому хотя городское население уже терпело нужду, гарнизон получал еще достаточное снабжение. Тогда Сципион решил соорудить между земляной косой и берегом залива каменную плотину шириной в 96 футов и таким образом запереть вход в гавань. Это мероприятие сначала вызвало насмешки карфагенян, считавших его неосуществимым. Но когда постройка плотины подошла к концу, для города, казалось, не было больше спасения. Но одна неожиданность уравновесила другую. Пока римские рабочие строили плотину, в карфагенской гавани в течение двух месяцев днем и ночью велись какие-то работы, причем в такой тайне, что даже перебежчики не могли сказать, что замышляют осажденные. Когда римляне закончили плотину, запиравшую вход в гавань, внезапно из той же гавани вышли в залив 50 карфагенских трехпалубных кораблей и мелкие суда и лодки. Оказалось, что пока римляне загораживали старый вход в гавань с южной стороны, карфагеняне прорыли канал в восточном направлении и таким образом создали себе новый выход; его невозможно было запереть, так как в этом месте море слишком глубоко. Если бы карфагеняне вместо вывода своего флота для парада немедленно и со всей энергией напали на римские корабли, совершенно неподготовленные — с кораблей отчасти были сняты снасти, — римский флот был бы полностью уничтожен. Но они напали на римлян лишь через три дня, когда враг встретил их в полной боевой готовности. Сражение кончилось вничью; но на обратном пути карфагенские корабли сгрудились в узком проходе у входа, благодаря чему флоту были причинены повреждения, равносильные поражению. Тогда Сципион повел наступление на внешнюю набережную; она находилась вне городских стен и была слабо защищена только земляным валом, возведенным недавно. Поставив осадные машины на земляной косе, римляне без труда пробили в валу брешь. Но карфагеняне, перейдя вброд мелководный рукав залива, с беспримерным мужеством напали на осадные орудия и прогнали обслуживавших их солдат. Римляне отступали в такой панике, что Сципиону пришлось двинуть против бежавших свою конницу. Осадные орудия римлян были разрушены, карфагеняне выиграли, таким образом, время и успели заделать брешь. Однако Сципион восстановил свои машины и снарядами поджег деревянные башни противника. В результате римляне овладели набережной, а вместе с нею и наружной гаванью. Здесь они соорудили вал, равный по высоте городской стене. Таким образом, город оказался, наконец, совершенно запертым как со стороны суши, так и со стороны моря, так как во внутреннюю гавань можно было проникнуть только через наружную. Чтобы полностью обеспечить блокаду, Сципион приказал Гаю Лелию атаковать лагерь под Неферисом, находившийся теперь под командой Диогена. С помощью удачной военной хитрости лагерь был взят и множество людей, находившихся в нем, было частью перебито, частью захвачено в плен. Между тем наступила зима, и Сципион прекратил военные действия, предоставив голоду и болезням довершить начатое им.