Ο Ρωμαίος Σκιπίων ο πρεσβύτερος, νικά κατά κράτος τις δυνάμεις του Αννίβα, αναγκάζοντας την Καρχηδόνα να συνθηκολογήσει, τερματίζοντας έτσι έναν πόλεμο που κράτησε σχεδόν 20 χρόνια.
Ο Σκιπίων μετέφερε τον πόλεμο στην καρδιά της Καρχηδόνας, στην αφρικανική ακτή. Είχε λιγότερους άνδρες από τον Αννίβα αλλά πιο έμπειρους και είχε κατορθώσει να συγκεντρώσει ισχυρή ιππική δύναμη παίρνοντας τους Νουμίδες με το μέρος του. Ο Αννίβας από την άλλη παρέταξε μεγάλους αριθμούς (40.000), αλλά στην πλειοψηφία τους ξένους μισθοφόρους ή Καρχηδονίους νεοσυλλέκτους. Βάσιζε όμως τις ελπίδες του στους 80 πολεμικούς ελέφαντες, που του είχαν χαρίσει ξανά τη νίκη.
H μάχη στη Ζάμα, κοντά στην Καρχηδόνα ξεκίνησε με την ορμητική επέλαση των ελεφάντων. Έτοιμος για το ενδεχόμενο, ο Σκιπίων διέταξε το ιππικό του να φυσήξει κέρατα παράγοντας τόσο θόρυβο, που οι ελέφαντες τρόμαξαν και μερικοί πισωγύρισαν σκορπίζοντας τις πρώτες καρχηδονιακές γραμμές. Όσοι κατόρθωσαν να ηρεμήσουν και να κινηθούν κατά των Ρωμαίων, αντιμετωπίστηκαν με τις κοόρτεις να συμπτύσσονται σχηματίζοντας διαδρόμους, μέσα από τους οποίους τα παχύδερμα πέρασαν στα μετόπισθεν, όπου ακοντιστές τα χτυπούσαν στα μαλακά μέρη.
Ακολούθησαν ιππομαχίες στα πλάγια της παράταξης. Το ρωμαϊκό νουμιδικό ιππικό υπερφαλάγγισε και καταδίωξε τους επίσης Νουμίδες ιππείς του Αννίβα στα δεξιά, ενώ το καχηδονιακό ιππικό στα αριστερά παρέσυρε το ρωμαϊκό μακρυά από τη μάχη. Ο Αννίβας επιτέθηκε στο κέντρο με τους μισθοφόρους του, αλλά μετά από σκληρή μάχη, το ρωμαϊκό πεζικό τους ανάγκασε να υποχωρήσουν.
Οι δύο αντίπαλοι σχημάτισαν πλέον μονή γραμμή, με τους Καρχηδονίους να βασίζονται στη δεύτερη γραμμή των νεοσυλλέκτων ενώ οι Ρωμαίοι στους βετεράνους τριαρίους (triarii: οπλίτες μεγαλύτερης ηλικίας και εμπειρίας). Η σύγκρουση ήταν φοβερή αλλά την κρίσιμη ώρα το ρωμαϊκό ιππικό ανασυντάχθηκε και επέστρεψε σε μια δεύτερη επέλαση στα νώτα των Καρχηδονίων, που τσάκισε την παράταξη και τους διασκόρπισε. Χιλιάδες σκοτώθηκαν ή έπεσαν στα χέρια των Ρωμαίων. Όσοι γλύτωσαν, μεταξύ τους κι ο Αννίβας, κλείστηκαν στα τείχη της πόλης, που ανυπεράσπιστη ζήτησε συνθηκολόγηση.
Οι όροι της ειρήνης ήταν ιδιαίτερα σκληροί και κατέστρεψαν την Καρχηδόνα οικονομικά και πολιτικά. Ο Σκιπίων για την επιτυχία του έλαβε τον τίτλο «ο Αφρικανός». Η Ρώμη εξήλθε του πολέμου κυρίαρχη και θαλασσοκράτειρα ενώ η Καρχηδόνα δεν ανέλαβε ποτέ ξανά. Πενήντα χρόνια αργότερα, χάρη σε έναν όρο της συνθήκης (η Καρχηδόνα δεν θα διεξήγαγε πόλεμο χωρίς τη συγκατάθεση της Ρώμης), ξέσπασε ο 3ος Καρχηδονιακός Πόλεμος στον οποίο η Καρχηδόνα πολιορκήθηκε, αλώθηκε και ισοπεδώθηκε οριστικά.