Britannica
Sources used in this answer
Who defeated Hannibal for Rome?
Created from Britannica articles
using AI.
AI can make mistakes, so verify using Britannica articles.
ancient Rome
The Temple of Saturn (foreground) and the Arch of Septimius Severus in the Roman Forum.
The Roman general who defeated Hannibal was Scipio Africanus (Publius Cornelius Scipio).12
He secured this decisive victory at the Battle of Zama in 202 BCE, which effectively ended the Second Punic War. During the battle, Scipio successfully neutralized Hannibal’s war elephants and utilized superior cavalry—led by the Numidian king Masinissa and the Roman general Gaius Laelius—to strike the rear of the Carthaginian lines, leading to a total Roman triumph. In recognition of this achievement, Scipio was awarded the surname Africanus.3142