La bataille de Zama a eu lieu en 202 avant JC près de Zama, aujourd'hui en Tunisie, et a marqué la fin de la deuxième guerre punique. Une armée romaine dirigée par Publius Cornelius Scipio, avec le soutien crucial du chef numide Masinissa, a vaincu l'armée carthaginoise dirigée par Hannibal.
Après avoir vaincu les armées carthaginoises et numides lors des batailles d'Utique et des Grandes Plaines, Scipion imposa des conditions de paix aux Carthaginois, qui n'eurent d'autre choix que de les accepter. Au même moment, les Carthaginois rappelèrent l'armée d'Hannibal d'Italie. Confiants dans les forces d'Hannibal, les Carthaginois rompent l'armistice avec Rome. Scipion et Hannibal se sont affrontés près de Zama Regia. Hannibal avait 36 000 fantassins contre 29 000 pour Scipion. Un tiers de l'armée d'Hannibal étaient des prélèvements de citoyens, et les Romains avaient 6 100 cavaliers contre 4 000 pour Carthage, car la plupart de la cavalerie numide qu'Hannibal avait employée avec un grand succès en Italie avait fait défection aux Romains.
Hannibal a également employé 80 éléphants de guerre. Les éléphants ont ouvert la bataille en chargeant la principale armée romaine. Les soldats de Scipion ont évité les éléphants en ouvrant leurs rangs puis les ont chassés avec des missiles. La cavalerie romaine et numide a ensuite vaincu la cavalerie carthaginoise et les a chassées du champ de bataille. La première ligne de mercenaires d'Hannibal a attaqué l'infanterie de Scipion et a été vaincue. La deuxième ligne de levées de citoyens et les restes de mercenaires ont agressé et infligé de lourdes pertes à la première ligne romaine. La deuxième ligne romaine rejoint la lutte et repousse l'assaut carthaginois. La troisième ligne de vétérans d'Hannibal, renforcée par les levées de citoyens et les mercenaires, affronta l'armée romaine, qui avait été redéployée en une seule ligne. Le combat était féroce et équitablement égalé. Enfin, la cavalerie de Scipion retourna à la bataille et attaqua l'armée d'Hannibal à l'arrière, la mettant en déroute et la détruisant.
Les Carthaginois ont perdu 20 00025 000 tués et 8 50020 000 capturés. Scipion a perdu 4 000 5 000 hommes, et 1 500 2 500 Romains et 2 500 Numides ont été tués. Vaincue sur son sol, l'élite dirigeante carthaginoise demanda la paix et accepta des conditions humiliantes, mettant fin à la guerre de 17 ans.
La deuxième guerre punique, qui dura de 218 à 201 av. J.-C., fut la deuxième des trois guerres menées entre Carthage et Rome, les deux principales puissances de la Méditerranée occidentale au IIIe siècle av. Pendant dix-sept ans, les deux États ont lutté pour la suprématie, principalement en Italie et dans la péninsule ibérique, mais aussi sur les îles de Sicile et de Sardaigne et, vers la fin de la guerre, en Afrique du Nord. Après d'immenses pertes matérielles et humaines de part et d'autre, les Carthaginois sont vaincus. La Macédoine, Syracuse et plusieurs royaumes numides furent entraînés dans les combats ; et les forces ibériques et gauloises combattirent des deux côtés. Il y avait trois principaux théâtres militaires pendant la guerre : l'Italie, où le général carthaginois Hannibal a vaincu à plusieurs reprises les légions romaines, avec des campagnes subsidiaires occasionnelles en Sicile, en Sardaigne et en Grèce ; Iberia, où Hasdrubal, un frère cadet d'Hannibal, a défendu les villes coloniales carthaginoises avec un succès mitigé jusqu'à son déménagement en Italie; et l'Afrique, où la guerre a été décidée. La guerre était la plus proche depuis le sac de Rome par Brennus en 390 avant JC que l'État romain est venu à la destruction, et il ne serait plus menacé de destruction avant le 5ème siècle.
En 219 avant JC, Hannibal assiégea, captura et pilla la ville pro-romaine de Sagonte, provoquant une déclaration de guerre romaine contre Carthage au printemps 218 avant JC. Cette année-là, Hannibal a surpris les Romains en faisant marcher son armée par voie terrestre depuis la péninsule ibérique, à travers la Gaule et les Alpes jusqu'à la Gaule cisalpine (l'Italie du Nord moderne). Renforcé par des alliés gaulois, il obtient des victoires écrasantes sur les Romains aux batailles de Trebia (218) et du lac Trasimène (217). Se déplaçant dans le sud de l'Italie en 216, Hannibal a de nouveau vaincu les Romains à la bataille de Cannae, où il a anéanti la plus grande armée que les Romains aient jamais réunie.
Après la mort ou la capture de plus de 120 000 soldats romains en moins de deux ans, de nombreux alliés italiens de Rome, notamment Capoue, ont fait défection à Carthage, donnant aux alliés d'Hannibal le contrôle d'une grande partie du sud de l'Italie. Alors que Syracuse et la Macédoine rejoignaient la partie carthaginoise après Cannae, le conflit s'étendit. Entre 215 et 210 avant JC, les Carthaginois ont tenté de capturer la Sicile et la Sardaigne tenues par les Romains, mais sans succès.
Les Romains ont pris des mesures drastiques pour lever de nouvelles légions, enrôlant des esclaves, des criminels et ceux qui ne remplissaient pas la qualification de propriété habituelle et augmentant ainsi considérablement le nombre d'hommes qu'ils avaient sous les armes. Au cours de la décennie suivante, la guerre dans le sud de l'Italie s'est poursuivie, les armées romaines reprenant lentement la majeure partie de l'intérieur du nord-est de la péninsule ibérique et les Carthaginois ont tenté à plusieurs reprises de le réduire.
En 211 avant JC, les Romains ont pris l'offensive en Ibérie et ont été vaincus de manière décisive, tout en maintenant leur emprise sur le nord-est. En 209 av. J.-C., le nouveau commandant romain Publius Scipio captura Carthago Nova, la principale base carthaginoise de la péninsule. En 208 avant JC, Scipion a vaincu Hasdrubal, bien que Hasdrubal ait pu déplacer la plupart de ses troupes en Gaule puis dans le nord de l'Italie au printemps 207 avant JC. Cette nouvelle invasion carthaginoise a été vaincue à la bataille du Metaurus.
Lors de la bataille d'Ilipa en 206, Scipion mit définitivement fin à la présence carthaginoise en Ibérie. Scipion envahit alors l'Afrique carthaginoise en 204, obligeant le Sénat carthaginois à rappeler l'armée d'Hannibal d'Italie. L'engagement final de la guerre a eu lieu entre les armées sous Scipion et Hannibal à la bataille de Zama en 202 et a abouti à la défaite d'Hannibal et à Carthage poursuivant pour la paix.
Le traité de paix imposé aux Carthaginois les dépouille de tous leurs territoires d'outre-mer, et de certains de leurs territoires africains. Une indemnité de 10 000 talents d'argent devait être payée sur 50 ans. Il était interdit à Carthage de faire la guerre en dehors de l'Afrique, et en Afrique uniquement avec l'autorisation expresse de Rome. De nombreux Carthaginois seniors voulaient le rejeter, mais Hannibal s'est prononcé fortement en sa faveur et il a été accepté au printemps 201 av. Désormais, il était clair que Carthage était politiquement subordonnée à Rome. Scipion a reçu un triomphe et a reçu l'agnomen "Africanus". En raison des termes sévères du traité de paix imposé à Carthage, le terme «paix carthaginoise» a été inventé au XXe siècle pour décrire tout traité de paix avec des termes conçus pour paralyser définitivement le côté perdant d'une guerre.