V roce 203 př. n. l., když Scipio zdolal všechny překážky, které se mu postavily do cesty při jeho tažení v severní Africe, byla mírová strana v Kartágu připravená přijmout Římany nabízený mír. Podmínky stanovené Kartágu byly celkem umírněné, jelikož Římané byli válkou značně vyčerpáni. Punové si směli ponechat svá území v Africe, avšak zároveň museli uznat ztrátu svých zámořských teritorií, a Massinissa se měl stát králem nezávislé Numidie. Kartágo mělo dále zmenšit svoji flotilu a zaplatit Římanům válečné škody. V téže době byl Hannibal povolán kartaginským senátem k návratu do Kartága. Poté, co zanechal záznam o svém válečném tažení vyrytý do kovových desek v Junonině chrámu ve městě Krotónu, podnikl Hannibal plavbu zpět do Afriky. Jeho příchod obnovil převahu válečné strany v senátu. Kartáginci však nyní učinili závažnou chybu, když pošetile odmítli přijmout mírovou smlouvu. Římští vyslanci byli popraveni a válka se rozhořela znovu s nezmenšenou intenzitou. Scipio, který mezitím odcestoval do Říma, se vrátil do Afriky a se svými vojáky se vydal drancovat zázemí Kartága. Hannibal byl přinucen jej v čele spojených sil Punů, Libyjců a žoldnéřů z Itálie pronásledovat a obě vojska se nakonec srazila u Zamy. Hannibal se údajně se Scipionem před bitvou sešel, aby s ním opět projednal možnosti uzavření míru. Avšak Scipio z důvodu předchozí punské věrolomnosti Hannibalovu nabídku odmítl. Krátce po setkání následovala rozhodující bitva, v níž Hannibal přišel o svoji nepřemožitelnost.