Which Roman general defeated Hannibal at the Battle of Zama in 202 BCE?

The story behind the answer

Scipio Africanus defeated Hannibal at the Battle of Zama in 202 BCE.

The battle in North Africa ended the Second Punic War, the long conflict between Rome and Carthage. Scipio, then known as Publius Cornelius Scipio, had taken the war to Africa after campaigning successfully in Iberia. His invasion forced Hannibal to leave Italy and return to defend Carthage.

At Zama, Scipio’s army used gaps between its infantry lines to let Hannibal’s war elephants pass without breaking the formation. Roman and allied cavalry later returned from pursuing the Carthaginian horsemen and attacked Hannibal’s army from behind. The resulting defeat forced Carthage to accept severe peace terms.

Scipio received the honorary name Africanus because of his victories in Africa. Zama is often described as the decisive Roman victory over Hannibal, although the exact site of the battle remains uncertain. The defeat ended Carthage’s ability to challenge Rome for control of the western Mediterranean.

Source: Wikipedia · fact-checked Sept. 2026

Add question to a list

Choose a list to keep this question in: