В любом случае вскоре после появления у карфагенян эскадры состоялось последнее морское сражение Пунических войн — последняя битва карфагенского флота. По признанию римских историков, карфагеняне могли бы уничтожить римские корабли, если бы немедленно напали на них. Однако в первый день они лишь выплыли в открытое море, точно насмехаясь над римлянами, и вернулись в гавань. Только на третий день, когда римляне приготовились к бою, они напали на них. Соотношение сил с самого начала было на стороне римлян. Карфагеняне прибегли к партизанской тактике. Их быстроходные суда подплывали к кораблям римлян, наносили им повреждения и стремительно удалялись. Когда дело дошло до сражений между отдельными кораблями, выяснилось, что на судах римлян не было абордажных мостиков, поскольку они не рассчитывали встретить в гавани Карфагена противника. Исход боя решали таранные столкновения, и в этом больше преуспели римляне. Карфагенские корабли отступили в гавань и были блокированы. После одержанной победы римский флот уже не принимал участия в штурме крепости и лишь поддерживал блокаду.
Зимой 147/46 годов до нашей эры Сципион разослал по всей Ливии войска, чтобы расправиться с союзниками осажденного города. После этого похода карфагеняне уже ничего не получали из Ливии. Римские войска, расположившись в удобном лагере, предоставили голоду и болезням истреблять осажденный гарнизон.
Все жители Карфагена укрылись за городскими стенами. Им оставался один выбор: гибель в бою или голодная смерть. Весной 146 года до нашей эры римляне прорвались в Карфаген. Шесть суток они пробивались сквозь улицы обреченного города. Каждая улица была полем битвы, каждый многоэтажный дом — крепостью. Одних защитников города римляне убивали в рукопашном бою, других сбрасывали с крыш домов на землю. Вскоре в городе начался пожар. Огонь пожирал все и перекидывался с дома на дом, убивая всех спрятавшихся за стенами. На месте величественных зданий лежали лишь камни, обугленные балки и трупы, множество трупов. Карфаген превратился в кладбище. По словам К.А. Ревяко, "это самый страшный пример тотального уничтожения народа".
Сципион, глядя на зарево пожаров, бушевавших 17 дней, со слезами на глазах декламировал строки "Илиады" Гомера:
Рядом с ним стоял летописец последней Пунической войны — Полибий. Знатный грек, он в течение двух десятилетий жил в Риме в качестве заложника, где сблизился со Сципионом. Когда Полибий спросил полководца, что хотел он сказать этими стихами, тот признался, что думает о судьбе, которая будет уготована когда-нибудь Риму.
Последние защитники города укрылись в храме Эшмуна. Оттуда к Сципиону пришли парламентеры — жрецы. Выслушав их, он обещал сохранить жизнь всем сдавшимся, кроме перебежчиков, но обратить всех в рабство.
Более 50 тысяч карфагенян во главе с их военачальником Гасдрубалом решили сдаться. Остальные, в том числе 900 римских перебежчиков, которых ждала мучительная казнь, подожгли храм Эшмуна.
Аппиан рассказывает историю, разыгравшуюся, когда Гасдрубал покорился римлянам и сел у ног их полководца. Его жена прокричала: "О, преступный и бессовестный, о, трусливейший из людей!.. Какой триумф украсишь ты, вождь великого Карфагена?! И какого только наказания ты не понесешь от руки того, в ногах которого ты теперь сидишь?" Произнеся такие оскорбительные слова, она зарезала детей, бросила их в огонь и сама бросилась туда же". Впрочем, некоторые историки считают этот рассказ вымышленным. Так, немецкий историк XIX века В. Ине предположил, что несчастную женщину убили, возмутившись предательством ее мужа.
Так завершилась Третья Пуническая война. По оценкам историков, в этой войне погибло до 90 процентов населения Карфагена. Всех пленников продали в рабство, за исключением перебежчиков, которых казнили.
Современные историки отмечают, что по правовым нормам того времени эта мера была крайне жестокой. В тогдашнем цивилизованном мире население городов, взятых штурмом или сдавшихся после длительной осады, не порабощали поголовно. Наказание, постигшее карфагенян, казалось их современникам таким же чудовищным, как гитлеровские концлагеря — людям, воспитанным на юридических нормах XIX века.
Победители долго грабили город. Сципион лишь запретил солдатам брать золото, серебро и храмовые дары. В благодарность богам, помогавшим ему победить, он сжег оружие, машины и часть кораблей. Затем отплыл в Рим и "справил самый блестящий из всех бывших триумф с большим количеством золота, статуй и храмовых приношений, которые карфагеняне за долгое время и при постоянных победах свезли со всего света в Ливию" (Аппиан).