Узнав, что брат идет ему на помощь, Ганнибал покинул свое убежище в Бруттии и двинулся навстречу. Казалось, опять Римская республика на краю гибели. Вспоминали поражение на берегах Тразименского озера, Канны, гибель Сципионов. Да и прошлый, 208 год до н. э. был отмечен мрачными событиями: консулы Криспин и Марцелл решили разгромить Ганнибала, опять угодили в ловушку, были окружены на равнине недалеко от Венузия, Марцелл погиб в битве, а Криспин, раненный двумя дротиками, сумел бежать, но умер от ран. И вот теперь две армии угрожают Италии.
Против двух братьев-пунийцев выступили две консульские армии. Марк Ливий Салинатор — против Гасдрубала, а Гай Клавдий Нерон — против Ганнибала. Консулов, отбывших в разные стороны к своим войскам, проводили из Рима с беспокойством. Нерон пытался не выпустить Ганнибала и даже потрепал его солдат, но Ганнибал ушел, прибегнув к хитрости: сделав вид, что все еще остается в лагере, потихоньку ускользнул ночью. Нерон кинулся следом, Ганнибал вновь ушел. Так, пока Нерон гонялся за Пунийцем, к Нерону попало письмо, отправленное Гасдрубалом брату, где Гасдрубал говорил о своем маршруте. Небывалый шанс! Нерон, о котором говорили, что он человек превосходный, но больно пылок и скор, решился на неординарные действия и попробовал обмануть Ганнибала. В лагере против Пунийца осталась часть армии — около 30 000 человек. Нерон отобрал 6 000 лучшей пехоты и 1 000 всадников и двинулся против Гасдрубала, распустив слух, что якобы идет в Лука-нию. Нерон пришел к лагерю второго консула ночью, тайком, лагерь не стали расширять: римлянам пришлось немного потесниться. Гасдрубал, подозревая ловушку, хотел избежать битвы, но проводники от него бежали, войска ночью заблудились, и римляне нагнали пунийцев. Сначала — Клавдий Нерон с конницей, а затем подошел и консул Ливий. Пунийцам пришлось вступить в битву. Пока консул Ливий сражался с Гасдрубалом на левом фланге, Нерон снял с правого фланга стоявшие в бездействии войска, перебросил их на помощь Ливию и этим маневром решил исход битвы. Гасдрубал, видя, как погибают его ветераны, кинулся в гущу сражения и погиб. Тит Ливий пишет в восторге, что погибло 56 000 врагов. Римский историк явно преувеличивает цифру — ему хочется перекрыть потери римлян под Каннами. Полибий приводит скромную цифру в 10 000. Неужели Гасдрубал вел на помощь брату столь незначительное войско, учитывая, что его переход через Альпы был мероприятием почти рутинным, да к тому же большое количество галлов пополнили его войска? Историк всегда не беспристрастен. Историк — тоже человек, и ничто человеческое ему не чуждо — как писал драматург Теренций (не путать с консулом).
За шесть дней консул Нерон совершил марш в обратную сторону и вернулся в лагерь. Римляне бросили перед вражескими войсками голову Гасдрубала и расковали двух пленных карфагенян и отправили к Ганнибалу — пусть тот услышит рассказ о поражении. Ганнибал снялся с лагеря и ушел обратно в Бруттий.
Когда Сципион вернулся из Испании в Рим, в триумфе ему было отказано. Ведь молодой полководец не занимал никакой курульной должности. Ну что ж! И не надо триумфа. Сципион получит его тогда, когда покорит Карфаген. Да, именно Карфаген его цель. Пусть Квинт Фабий Максим Кунктатор требует разбить Ганнибала в Италии. Это совершенно ни к чему. Сципион нападет на Карфаген, разобьет тамошние войска, а уж потом явится Ганнибал спасать свою родину и тогда…
Все вышло так, как задумал Сципион. В 204 г. до н. э. он переправился в Африку. Здесь его уже ждали — карфагенская армия, и, главное, отличная нумидийская конница.
Против римлян выступили два войска: карфагенян и нумидийцев. Ночью Сципион напал на лагерь нумидийцев. Конница в лагере была бесполезна, а пешие нумидийцы плохие вояки, так что исход ночной битвы был предрешен. Карфагеняне кинулись на помощь своим союзникам и угодили в засаду, устроенную Сципионом. Подробности очень похожи на сражение Луция Марция в Африке. То ли Сципион «позаимствовал» чужие хитрости (а был он хитер — хотя вряд ли мог соперничать с Пунийцем по этой части). В этой ночной битве Карфаген потерял около 40 000. Но богатый город сумел выставить новое войско в 30 000 человек — однако, в большинстве своем новобранцев. Сципион без труда разбил и эту армию. Карфагеняне запросили мира, условия, предложенные Сципионом, были вполне приемлемыми — главное, там не было пункта о запрете вести боевые действия, сумма контрибуции — меньше, чем запросят римляне после битвы при Заме. В планы Сципиона Африканского не входило разрушать город: он и тогда, и потом выступал за сохранение Карфагена. Было заключено перемирие. Но «партия войны» позвала на помощь Ганнибала. Знаменитый полководец без боя покинул Италию и возвратился в Африку со своими ветеранами. Перемирие было нарушено, Ганнибал набрал гражданское ополчение в Карфагене, получил 80 боевых слонов.
А тем временем нумидийская конница благодаря ловким дипломатическим ходам перешла на сторону Рима. Ганнибалу не помогли ни его хитрость, ни мужество его ветеранов, а от слонов вышло больше вреда, чем пользы. Знаменитый полководец потерпел сокрушительное поражение в битве при Заме в 202 г. до н. э.
Рим и Карфаген заключили унизительный для последнего мир. Карфаген должен был отдать всех боевых слонов, весь военный флот, выдать 100 заложников и уплатить контрибуцию в 10 000 талантов (!) в течение 50 лет. Кроме того, в Африке пунийцы не имели права воевать без согласия Рима (очень спорный пункт, который всегда можно использовать как повод для начала войны). В тот момент Рим не стал добивать Карфаген: слишком много усилий, а выгоды никакой. Новую колонию не удержать в повиновении: сил пока нет, а отдавать ее кому-нибудь опасно. К тому же быть столь мстительными опасно: а вдруг боги позавидуют людской удаче? Стоит помнить о «коварных умыслах» судьбы, «зная, что никогда не раздает она людям свои великие дары безвозмездно». (Плутарх)
Сципион вернулся в Рим и справил триумф. Сципион и Ганнибал умерли в 183 г. до н. э. Ганнибал, приняв яд, так как царь Вифинии, у которого он укрывался, согласился выдать его римлянам. А Сципион умер своей смертью вдали от Города, в деревне, в добровольном изгнании.
Итог войны прост: Ганнибал не сумел покорить Рим, зато помог создать Риму грозную военную машину и превратил сильную страну в Мировую державу, которая в течение веков станет господствовать в Средиземноморье.
А Канны навсегда остались одной из неразрешимых загадок. Каждый историк выдвигает свою версию поражения. Питер Коннолли утверждает, что на самом деле командовал не Варрон, а Эмилий Павел. И всю историю поражения Полибий (которому Коннолли продолжает безоговорочно верить, когда дело касается цифр) переписал в угоду Сципиону Эмилиану, внуку погибшего консула. В подтверждение своей гипотезы Питер Коннолли указывает на то, что Эмилий Павел встал на правом фланге, где обычно находился главнокомандующий. Спору нет, версия оригинальная, однако совершенно непонятно, как удалось Полибию переписать историю на глазах у других аристократических семей Рима. У Сципионов всегда было достаточно врагов, и среди них выделялся Катон Цензор. Римские аристократы старались принизить тех, кто отличился на поле брани, чтобы не дать кому-то одному слишком возвыситься. Победителя Ганнибала буквально «выдавили» из политической жизни Рима и он, еще не старый человек, поселился в добровольном изгнании в своем поместье. Когда Полибий писал свой труд, еще были живы ветераны 2-й Пунической войны, и существовали уже творения римских авторов, в том числе труд Фабия Пиктора, участника войны с Ганнибалом. Фабий Пиктор являлся противником Сципионов, а трудом Фабия Пиктора пользовался Тит Ливий во время написания своей «Истории». Но нигде в античных источниках не осталось ни единого намека на иную версию. Все утверждают, что в битве при Каннах командовал Теренций Варрон. В то время как такая мелочь о том, что консула Корнелия Сципиона спас не его сын Публий, а лигурийский раб, упомянута Титом Ливием. Обычно античные историки сообщали, что существовали иные версии событий (так поступали Плутарх и Тит Ливий). К тому же знаменитый энциклопедист I века до н. э. Теренций Варрон — потомок злосчастного уцелевшего консула. Каждая римская семья тщательно хранила память о деяниях своих членов, и человек, написавший 74 произведения в 620 книгах, не забыл бы реабилитировать имя своего предка, если бы на том в самом деле не было вины за поражение при Каннах. Другое дело, что наверняка оба консула желали дать сражение, и уже после катастрофы благоразумные высказывания могли приписать погибшему Эмилию.