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