Предстояло воевать на нескольких фронтах, и римляне сознательно идут на риск, в то время как Ганнибал безнаказанно перемещался по Италии. В 215 года до P. X. одно римское войско идет в Иберию, отсекая сухопутные коммуникации, другое — на Сицилию, укрепить позиции, чтобы у Ганнибала не появились морские линии снабжения. Третье войско должно было беспокоить Ганнибала, но ни в коем случае не вступать в большое сражение.
Весы истории опять пришли в движение, ситуация перестала быть столь однозначной, как, возможно, это казалось Ганнибалу. Он одержал еще несколько побед: в Апулии в 214 до P. X. разбил войско Фульвия, при Канузии в 212 до P. X. — Марцелла, захватил Тарент. Да и в Иберии дела у римлян шли неважно.
Но в 211 году до P. X. ситуация начала меняться. Римляне вернули себе Капую, которая почти пять лет была основной базой Ганнибала в Италии. Пытаясь отвлечь римлян от осады Капуи, Ганнибал двинулся на Рим, но вскоре понял, что завязнет в осаде, и отказался от этой авантюры. Капуя между тем пала.
Чтобы улучшить положение дел в Иберии, была набрана новая армия. Ее возглавил сын Корнелия Сципиона. Молодой военачальник действовал решительно, и в 209 году захватил Новый Карфаген. А Фабий, приучивший Ганнибала к тому, что он воспринимал его лишь как беспокоящую по мелочам помеху, внезапным броском отвоевывает Тарент, стратегически важный портовый город.
А тут и союзники, видя неуклонное давление римлян на противника, начали сомневаться в победоносности карфагенского оружия и стали возвращаться под руку Рима. Ганнибалу становилось все труднее и труднее пополнять силы, а войско Гасдрубала Барки, его брата, идущее к нему на подмогу из Иберии, было перехвачено и разбито.
Публий Корнелий Сципион на волне успеха возвращается в Рим и предлагает вернуться к испытанной в Первую Пуническую войну стратегии, то есть высадиться в Африке. Его победы, а также восемь тонн серебра, которые он привез в качестве добычи в городскую казну, убедили римлян. Сенат, впрочем, не был впечатлен и склонялся к мнению осторожного Фабия Максима, который резко возражал против африканской экспедиции. Но, понимая, что прямой отказ может быть неодобрительно воспринят народом, сенат все же разрешил Сципиону в случае необходимости самому набрать армию и высадиться в Африке, «если того потребует общественная польза», как обтекаемо ему было сказано.
Корнелий Сципион приступает к набору добровольцев и снаряжению судов — тоже за счет добровольных пожертвований. И к 204 году до P. X. он считает, что готов начать действия. Но все же сначала отправляет небольшой десант из старых судов. Неожиданный успех десанта и обещание нумидийского царя поддержать римлян заставляют Сципиона действовать быстро и решительно. И вот, наконец, в 204 году до P. X. римская армия высаживается на вражеской территории. Карфаген в панике, войско, которое он выставил против Сципиона, разбито. Ганнибала призывают вернуться домой, и он вынужден покинуть Италию.
Через два года после начала африканской кампании войска Сципиона и Ганнибала сходятся, наконец, в решающем сражении при Заме. По иронии судьбы повторилась битва при Каннах, только на этот раз нумидийская конница окружает и громит не римлян, а карфагенян. Ганнибалу удается спастись, он возвращается в Карфаген и советует заключить мир.
В 201 году до P. X. Карфаген сдается. Римляне отбирают у него весь военный флот, а это почти пятьсот кораблей без права его восстановления. Сципион сжигает эти корабли. Контрибуция в десять тысяч талантов весьма тяжела, но еще тяжелее — потеря всех заморских территорий. Корнелий Сципион, как пишет Тит Ливий в книге «Война с Ганнибалом», первым среди римских полководцев получает прозвище по имени покоренной им территории. В историю он вошел как Сципион Африканский.
Семнадцать лет длилась Вторая Пуническая война. Одержав победу над Карфагеном, Рим превратился в самое сильное государство западной части Средиземного моря. Республика приросла Сицилией, Сардинией, Корсикой. Города в Иберии, которую теперь римляне звали Испанией, греческие города, Нумидия перешли под римское покровительство.
В это время и решилось будущее Республики. Сенат разделился во мнениях относительно новых территорий. Сципион Африканский и некоторые сенаторы полагали, что разумно будет учредить там новые государства с местными правителями, зависимыми от Рима. Другие сенаторы поддерживали престарелого Фабия Максима (а после его смерти — Марка Порция Катона), предлагавшего более решительные меры, а именно — провинциальное управление этими территориями. И чтобы никакого местного управления! Лишь наместники, присылаемые из Рима, должны были обладать в провинциях (или, как их называли, поместьях римского народа) высшей властью — военной и судейской.