En hær ledet af Hannibal havde i 15 år hærget romernes territorium i Italien. De romerske hære havde store problemer med at vinde over Hannibal i slag i Italien, så Scipio Africanus foreslog derfor senatet, at krigen skulle bringes over til punernes hjemmebane i Nordafrika. På trods af lunken støtte i senatet fik Scipio mandat til at gøre dette.
I Nordafrika begyndte Scipio felttoget med en belejring af Utica uden fremgang. Efter at have overvintret i Afrika vandt Scipio slaget ved Bagbrades og tvang dermed den karthagenske ledelse til at kalde Hannibal hjem fra Italien. Hannibal organiserede en ny hær i Afrika, men da numidierne gik over til at støtte Rom frem for Karthago, følte Scipio, at krigen kunne vindes til trods for, at Hannibal havde formået at etablere en ny hær.
Slaget
Slaget begyndte med et frontalangreb med de karthagenske elefanter, men mange af elefanterne gik i panik og vendte om. Resten af elefanterne løb i mellemrummene mellem de romerske manipler og gjorde liden skade.
Det numidiske og romerske kavaleri gik så til angreb på Hannibals kavaleri på begge flanker. Det karthagenske kavaleri var allerede dårligt organiseret på grund af panikken blandt elefanterne og måtte give efter for det romersk-numidiske angreb. Karthagenernes kavaleri flygtede fra slagmarken med romerne og numidierne lige efter sig.
Samtidig foregik der heftige kampe i centrum, hvor de to siders infanteri stod mod hinanden. Ingen af parterne fik noget overtag, men da Hannibal efterhånden indsatte sine veteraner fra felttoget i Italien, som hidtil havde været holdt i reserve, så situationen værre ud for romerne. Heldigvis for Scipio vendte det romerske og numidiske kavaleri tilbage til slagmarken, og da disse angreb karthagenerne i ryggen og på begge flanker, brød de karthagenske linjer sammen, og de blev slagtet i stort antal.
Efterspil
Hannibal selv undslap med nød og næppe slaget og flygtede til Karthago via Hadrumetun ved kysten. Her anbefalede han ledelsen i Karthago at slutte fred med Rom, da krigen ikke kunne fortsætte. Det karthagenske senat bad så romerne om fred, en fred Karthago fik på yderst dårlige betingelser.
Karthagos dage som stormagt i det vestlige Middelhav var efter dette talte. Republikken Rom derimod var blevet den dominerende magt i området.