С этого момента эпопея превращается в авантюру и начиная с 213 года до н. э. могущество Ганнибала постепенно рушится. Через два года римляне навсегда вытеснили карфагенян из Сицилии. Капуя капитулировала и была жестоко наказана. Корнелий Сципион завоевал Андалузию и лишил Карфаген главной его артерии (208–207 год до н. э.). Этим был предрешен исход войны. Немного позднее Гасдрубал, приведший брату подкрепления, потерпел поражение и был убит в битве на Метавре (июнь — июль 207 года до н. э.). Ганнибалу не оставалось ничего иного, как стать лагерем в Бруттии, где на него не решались напасть.
Сципион Африканский.
Возвратившись из Испании (206 год до и. э.), Сципион (прозванный после побед над Карфагеном Африканским) предложил перенести военные действия на территорию Африки. Сенаторы отнеслись к этому плану отрицательно, но народ поддержал его. Опираясь лишь на ресурсы своей сицилийской провинции и контингенты, привлеченные его популярностью, Сципион все же подготовил наступление. Предварительно он завязал переговоры сАфриканская кампания.
Как только под давлением народа сенат разрешил Сципиону начать наступление на Африку (204 год до н. э.), он высадился с двумя легионами близ Утики, разбил лагерь (Гасдрубал и Сифакс с помощью кельтиберских подкреплений подготовили контрнаступление, но оно закончилось полной неудачей. Сципион поднялся по долине Баграды [Меджерды] и в битве при Дахле (
Сципион согласился предоставить Карфагену передышку для переговоров о мире, за который проголосовали комиции (зима, 203–202 годы до н. э.), но римский флот с продовольствием сел на мель и был разграблен изголодавшимися карфагенянами; толпа чуть было не растерзала послов, направленных с жалобой в Карфаген, и Сципион вынужден был нарушить перемирие.
Жители города рассчитывали на Ганнибала, вызванного из Италии. Баркид беспрепятственно пересек море, высадился в Малом Лептисе (Лемта, лето 203 года до н. э.) и прибыл в Гадрумет. Что он делал в течение года, предшествовавшего поражению? Несомненно, старался сплотить вокруг себя берберские племена. Как раз идя на соединение с войсками берберов, которые вел сын Сифакса Вермина, Ганнибал столкнулся в районе Кефа с армией Сципиона. Между Сципионом и Ганнибалом состоялись переговоры, не давшие никаких результатов. Римский полководец отверг мирные предложения, выдвинутые Карфагеном: уступка Испании и островов, уничтожение карфагенского флота, за исключением 20 судов, взамен на признание господствующей роли Карфагена в Африке. Тогда близ Замы, точное местонахождение которой остается спорным, произошло решительное сражение.
Так и не соединившись с Верминой (тогда как Сципион своевременно получил подкрепления Масиниссы), имея под своим командованием лишь плохо обученные и утомленные войска, Ганнибал был наголову разбит и бежал в Гадрумет. 20 тысяч человек пали на поле боя, еще 20 тысяч были взяты в плен. Сципион не мог не признать, что в «день Замы» Баркид сделал все, что было в человеческих силах (октябрь, 202 год до н. э.).