W roku 204 Scypion Afrykański Starszy wylądował w północnej Afryce, zmuszając Hannibala do wycofania się z Italii, zaś w 202 roku pokonał jego wojska w bitwie pod Zamą, zmuszając Kartaginę do zawarcia niekorzystnego traktatu pokojowego. Kartagina straciła wszystkie swoje posiadłości poza Afryką i musiała zapłacić kontrybucję oraz podporządkować swoją politykę zagraniczną Rzymowi.

Po II wojnie punickiej Hannibal pozostał dowódcą armii kartagińskiej do roku 200, gdy został odwołany pod wpływem nacisków rzymskich, następnie w roku 196 pełnił urząd sufeta. Jako sufet przeprowadził reformy ograniczające władzę oligarchicznego Trybunału Stu Czterech, którego członkowie odtąd byli corocznie wybierani zamiast zasiadać w tym gremium dożywotnio. Ponadto mając poparcie ludu wyegzekwował zaległe należności od kartagińskich arystokratów. Rządy Hannibala przywróciły kraj do dobrobytu gospodarczego, co umożliwiło spłacenie ogromnej kontrybucji wojennej.