Бекуле, хотя и не нанес карфагенянам большого урона. А сам Гасдрубал по приказу Ганнибала отправился в Галлию, оставив Испанию Сципиону.
О перемещении войск Гасдрубала стало известно римскому консулу Клавдию Нерону. В 207 году римляне устроили противнику засаду у реки Метавр и разбили его. Гасдрубал, поняв, что все потеряно, намеренно ворвался в римскую когорту, чтобы погибнуть.
В доказательство своей победы римляне прислали Ганнибалу отрубленную голову брата. Однако тот и не думал покидать Италию, продолжая с большим упорством вести боевые действия. Тем временем тактика Рима, направленная на затягивание войны и истощение сил карфагенской армии на итальянской земле, стала давать свои результаты. Оторванность от тыловых баз поставила войска Ганнибала в крайне затруднительное положение.
Тем временем Сципион с армией, воспитанной уже в духе линейной тактики, одержавшей успехи на Пиринейском полуострове, еще повысил занятиями и маневрами боевую подготовку своих войск и высадился в 205 году на африканском берегу близ Карфагена. Осадить Карфаген Сципион был не в силах, но ему удалось вмешаться в нумидийские дела, взять в плен шейха, являвшегося опорой карфагенского влияния, и создать перевес его противнику Массиниссе, который неожиданно взялся помогать Риму.
Осенью 203 года до н. э. Ганнибал с остатками своей армии срочно был отозван из Италии на защиту Карфагена. В Африку Ганнибал прибыл с пехотинцами, но почти без конницы. Вернувшись на родину после 16-летнего отсутствия, он приступил к переустройству своей армии, на что потребовалось до девяти месяцев. Армия формировалась, дабы избежать вмешательства гражданской власти, не в самом Карфагене, а в небольшом приморском городке Хадруметуме.
Наконец, летом 202 года до н. э. Ганнибал начал боевые действия против римлян. Последние не имели еще в своем распоряжении ни одного порта и базировались на полуострове Утика. Массинисса с обещанными 10 тысячами воинов еще не присоединился к армии Сципиона, располагавшей для операций в поле примерно 25 000 бойцов.
Римская армия находилась в долине реки Баградас, когда Сципион был уведомлен, что Ганнибал с 35-тысячным войском движется как раз между ним и тем районом к западу, откуда ожидались нумидийцы. Любой другой военачальник на месте Сципиона отошел бы на полуостров Утика, где была укрепленная база, после чего наверняка был бы заблокирован Ганнибалом и потерял бы влияние на нумидийцев. Но Сципион пошел на риск: он бросил свои сообщения с морем, быстрым фланговым маршем на запад сам пошел на воссоединение с Массиниссой и, получив от него подкрепление в 6000 всадников и 4000 пехотинцев, двинулся навстречу Ганнибалу. Столкновение произошло 19 октября 202 года до н. э. при Нарагаре, однако в истории оно известно как битва при Заме.
Это сражение двух 35-тысячных армий представляет собой очень интересный пример первого в истории применения римлянами линейной тактики.
Ганнибал еще не успел создать конницы, и здесь римляне превосходили его троекратно.