Vuonna 203 eaa. Rooman sotapäällikkö Scipio oli hyökännyt Afrikkaan. Jotkut karthagolaiset poliitikot suunnittelivat aselepoa Rooman kanssa. Sodan kannattajat päättivät kutsua Hannibalin kotiin Italiasta. Hannibalin saapumisen myötä sodan kannattajat pääsivät uudelleen niskan päälle karthagolaisessa politiikassa. Hannibalin käyttöön annettiin hänen oman palkka-armeijansa lisäksi afrikkalaisia vahvistuksia. Vuonna 202 eaa. Hannibal tapasi Scipion neuvotteluissa, mutta, huolimatta molemminpuolisesta ihailusta, neuvottelut eivät edistyneet. Lopulta Scipio ja Hannibal kohtasivat toisensa Zaman taistelussa. Tällä kertaa tasaisen kamppailun jälkeen Rooman kokeneet joukot ottivat voiton Hannibalin suurelta osin kokemattomista joukoista. Karthagolaisten tappiot olivat merkittävät. Karthagon sotakone oli nyt lyöty lopullisesti ja heidän oli pakko antautua Roomalle.