Da Hannibal ohne Unterstützung von Karthago blieb, so setzte er seine Hoffnung auf das an Hilfsmitteln unerschöpfliche Spanien, von wo ihm seine Brüder Hasdrubal und Mago zu verschiedenen Malen neue Truppen zuzuführen suchten. Aber auch diese Hoffnung täuschte ihn. Hasdrubal war schon mit einem starken Heere, dem letzten, das er in Spanien hatte sammeln können, über die Alpen nach Italien und am östlichen Apennin entlang bis in die Landschaft Picenum gelangt, wo ihm der Konsul Livius Salinator entgegentrat. Auf die Kunde hiervon eilte auch der andere Konsul Claudius Nero, der in Unteritalien Hannibal gegenüber im Lager stand, bevor dieser von der Ankunft seines Bruders Nachricht erhalten, in raschem Zuge seinem Amtsgenossen zu Hilfe. Vereinigt schlugen und vernichteten sie bei Sena Gallica am Flusse Metaurus, im Jahre 207, das feindliche Heer. Als Hasdrubal die Niederlage der Seinen erkannte, stürzte er sich unter die Feinde und kämpfte, bis er den Tod fand. Darauf kehrte Nero in sein altes Lager zurück und ließ, wie erzählt wird, das blutige Haupt Hadrubals unter die feindlichen Vorposten schleudern. Als Hannibal seines Bruders Kopf erkannte und seine letzte Hoffnung geschwunden sah, soll er in bitterem Schmerze ausgerufen haben: „Daran erkenne ich Karthagos Schicksal!“
In den letzten Jahren behauptete sich Hannibal nur noch im Gebiete der ihm treuen Bruttier und verfuhr nur verteidigungsweise. Endlich ward er vom Rate zu Karthago zum Schutze der Vaterstadt zurückgerufen, da die Römer in Afrika gelandet waren und Karthago selbst bedrängten. Hannibal zögerte nicht dem Ruf zu folgen; denn seine Rolle in Italien war ohnehin zu Ende. In Kroton (Cortona) bestieg er mit dem Reste seines Heeres die Schiffe und verließ den Schauplatz seines sechzehnjährigen Kampfes (203). Ebenso wurde sein jüngster Bruder Mago, der seit drei Jahren in Norditalien sich festgesetzt und behauptet hatte, heimgerufen, starb aber auf der Fahrt an einer Verwundung.
In Rom atmete man auf, als der gewaltige „libysche Löwe“ endlich den italischen Boden freiwillig verließ. Bei diesem Anlaß ward dem einzig überlebenden der Feldherren, die gegen ihn gefochten hatten, dem bald 90jährigen Quintus Fabius von Senat und Bürgerschaft die höchste Ehre erwiesen, die ein Bürger erreichen konnte. Er empfing den Graskranz, den nach alter Sitte das Heer seinem Feldherrn darbrachte, dem es seine Rettung zu verdanken hatte. Noch in demselben Jahre starb der alte Held.
Der Feldherr aber, der den Krieg nach Afrika verlegt hatte, war Publius Cornelius Scipio, der Sohn jenes Scipio, der im Treffen am Ticinus verwundet worden war. Sein Vater und sein Oheim hatten, nachdem sie fast ganz Spanien erobert hatten, zuletzt im Kampfe gegen Hannibals Bruder Hamilkar schwere Niederlagen erlitten und selber den Tod gefunden (211), und so hoffnungslos schien damals die Lage der Römer auf dieser Halbinsel, daß in Rom jeder den Oberbefehl in diesem gefahrvollen Kriege ablehnte. Nur der erst siebenundzwanzigjährige Publius Scipio bot dem Vaterlande seine Dienste an. Er hatte noch nicht das zu Staatsämtern erforderliche Alter erreicht, aber der aus schönem Körper hervorleuchtende hohe und stolze Geist, seine Begierde den Tod des Vaters zu rächen und seine schon bewährte Tapferkeit bestimmten den Senat dem edlen Jüngling den Heerbefehl zu übertragen. Im Jahre 211 ging er, den die Römer mit dem Kriegsgott selber verglichen, nach Spanien, um dieses wichtige Gebiet dem Feinde zu entreißen.
Hier fand er ein niedergeschlagenes und zerrüttetes Heer, dem er erst Mut und Vertrauen einflößen mußte. Schon 210 eroberte er Neukarthago und gewann unermeßliche Beute. Die Geiseln, welche die Karthager für die Treue der Spanier hier aufbewahrten, behandelte er mit großer Freundlichkeit und Schonung. Unter ihnen befand sich eine Jungfrau von ausgezeichneter Schönheit. Er fragte sie nach ihren Eltern und ihrer Heimat. Sie sagte ihm, sie sei die Tochter eines keltiberischen Häuptlings und die Braut des Allucius, eines keltiberischen Fürsten. Sogleich ließ Scipio ihre Eltern und ihren Bräutigam herbeikommen. Sie naheten sich in banger Ungewißheit, aber Scipio beruhigte sie: „Hier ist deine Braut“, sprach er zu Allucius, „nimm sie unverletzt und ohne Lösegeld zurück, und werde ein Freund der Römer!“ Da ergriff Allucius, von Dankgefühl und Freude hingerissen, die Rechte des Scipio und bat die Götter solchen Edelmut würdig zu belohnen. Auch die Eltern des Mädchens waren tief gerührt. Sie hatten ein großes Lösegeld mitgebracht und baten ihn dies als ein Zeichen ihrer Dankbarkeit anzunehmen. Scipio nahm das Geld, wandte sich noch einmal an Allucius und sagte: „Zu der Mitgift, die du von deinem Schwiegervater erhalten wirst, nimm von mir dieses Hochzeitsgeschenk.“ Freudig kehrte der glückliche Bräutigam mit den Seinigen zurück, und indem er überall das Lob des Scipio verbreitete, brachte er seine Mitbürger auf die Seite der Römer. „Ein Jüngling,“ sagte er zu den Keltiberern, „ist nach Spanien gekommen, ganz den Göttern ähnlich, der nicht bloß durch Waffen, sondern auch durch Milde und Wohltun alles besiegt.“
Nachdem Scipio in sechsjährigem Kriege die karthagische Macht in Spanien völlig vernichtet und die Einwohner teils mit Waffengewalt, teils durch kluge Großmut und Milde unter römische Botmäßigkeit gebracht hatte, kehrte er sieggekrönt nach Rom zurück (205), wo ihm das Konsulat für das folgende Jahr übertragen wurde. Er ging nach Sizilien und traf hier gewaltige Zurüstungen zu einem Zuge nach Afrika, an dessen Küste er im Jahre 204 landete. Die Karthager hatten ein bedeutendes Heer unter Hasdrubal und Syphax, dem König von Westnumidien. Aber Scipio wußte durch eine List ihr Lager auszukundschaften, steckte es bei einem nächtlichen Überfall in Brand und rieb fast das ganze Heer auf. Auch in einer zweiten Schlacht schlug er die Feinde. Da riefen die Karthager, im eigenen Lande gefährdet, ihren Feldherrn Hannibal zurück.
Der gefürchtete Held erschien in Afrika und bezog bei Zama, fünf Tagereisen von Karthago, ein Lager (202). Vor der Schlacht wünschte er, da er wohl einen unglücklichen Ausgang voraussah, eine Unterredung mit Scipio, um über den Frieden zu verhandeln. Sie ward ihm gewährt. Auf einer Ebene unweit von Zama kamen beide Feldherrn zusammen. Sie gerieten beim ersten Anblick in solches Erstaunen, daß sie sich eine Zeit lang schweigend betrachteten. Beide hatten sich noch niemals gesehen und doch schon so viel von einander gehört. Beide waren die größten Feldherrn ihrer Zeit, aber in ihrem Äußeren weit verschieden. Hannibal, damals fünfundvierzig Jahre alt, zeigte ein finsteres, schwermütiges Antlitz; die Mühseligkeiten seiner langen und wechselvollen Feldzüge hatten ihre tiefen Spuren darin zurückgelassen. Scipio hingegen, damals in einem Alter von fünfunddreißig Jahren, war ein Muster männlicher Schönheit. Nach langem Schweigen fing endlich Hannibal die Unterredung an. Er sprach zuerst von der Veränderlichkeit des Glücks und seinen eigenen Schicksalen; dann riet er Scipio, er möge dem Glücke, das ihm jetzt lächele, nicht zu sehr vertrauen, und einen sicheren Frieden einem ungewissen Kampfe vorziehen. Hierauf legte er ihm seine Friedensbedingungen vor; er versprach im Namen der Karthager Spanien, Sardinien und alle anderen Inseln zwischen Afrika und Italien den Römern abzutreten. Scipio aber verwarf diese Bedingungen und forderte vollständige Unterwerfung der Karthager. Da Hannibal diese nicht versprechen wollte noch konnte, so schied man ohne Ergebnis von einander, um sich zum Entscheidungskampfe zu bereiten.
Am folgenden Tage stellte Scipio die drei Linien seines Fußvolkes in die Mitte, und zwar in durchbrochenen Gliedern, um den achtzig Elefanten, welche Hannibal vor seiner Schlachtlinie aufstellte, Raum zum Durchbrechen zu lassen. Auf dem linken Flügel stand die italische Reiterei, auf dem rechten Massinissa, der mit den Römern verbündete König von Ostnumidien, an der Spitze seiner numidischen Reiter. Auch Hannibal ordnete sein Fußvolk in drei Linien. Vorn, gedeckt durch die Reihe der Elefanten, die karthagischen Soldtruppen, hinter diesen die libyschen Truppen, und darauf die Veteranen, die er aus Italien hergeführt hatte. Auf den beiden Flügeln standen wie üblich die Reitergeschwader.
Gleich beim Beginn des Treffens wurden die Elefanten durch das Kampfgeschrei und die Feldmusik der Römer, dann durch einen Hagel von Geschossen scheu, brachen durch die Lücken der römischen Aufstellung und warfen sich auf die Reiterei des eigenen Heeres. Diese geriet in Unordnung und ergriff, als jetzt die römische zum Angriff vordrang, die Flucht. So wurden gleich anfangs die Flügel des punischen Heeres entblößt. Aber auch die Leichtbewaffneten in der ersten und zweiten Linie der Karthager wurden nach kurzem Gefecht auf die Hauptkolonne zurückgeworfen. Ganze Haufen von Erschlagenen lagen der vordringenden ersten Linie der Römer im Wege und hinderten sie im weiteren Vorrücken. Da ließ Scipio die zweite und dritte Linie eine Schwenkung machen und in die Flanken des Feindes vordringen. Gleichwohl hielt das punische Heer, von Hannibal rasch wieder gesammelt und geordnet, und zumal seine italischen Kerntruppen noch tapfer stand, bis die römische Reiterei von der Verfolgung der punischen zurückkam und dem Fußvolk in den Rücken fiel. Dies entschied die Niederlage der Punier; 20000 lagen tot auf dem Schlachtfelde, etwa ebenso viele wurden gefangen. Hannibal selbst entkam mit wenigen Reitern. Er erkannte, daß fortan jeder Widerstand vergeblich sei, und riet in Karthago dringend zum Frieden.
Der Friede kam auf folgende Bedingungen zustande (201): die Karthager behalten nur ihr Gebiet in Afrika, bezahlen 10000 Talente (über 47 Mill. Mark) in 50 Jahren, liefern ihre 500 Kriegsschiffe bis auf 10 aus, ebenso die Elefanten, und dürfen ohne Roms Genehmigung keinen Krieg anfangen. Damit war die Macht und die Vorherrschaft Karthagos im westlichen Mittelmeer gebrochen. Sicilien und die iberische Halbinsel standen fortan als die ersten Provinzen des erstehenden römischen Reiches (imperium) unter der Verwaltung römischer Statthalter. Nicht lange, so gerieten auch die Küstenländer des östlichen Mittelmeeres unter die Hoheit dieses Reiches.
Nach seiner Rückkehr feierte Scipio in Rom einen Triumph, der alle früheren an Bedeutung und Glanz übertraf, und erhielt den Ehrennamen Africanus.