In 202 BC, Hannibal learned that Publius Cornelius Scipio was devastating the area around Zama and left his base in Hadrumetum to confront him. Carthage was heavily dependent on the fertile grain production of the area and had no choice but meet the threat, despite Hannibal's recently recruited and poorly trained army. Scipio also was well aware of Hannibal's great ability in a defensive position, especially around Carthage. He hoped that his activities in the important area near Zama would draw Hannibal away from his defensive works at Hadrumetum and Carthage. It also provided an opportunity to link up with Masinissa's cavalry operating in the same area.
Hannibal, by this time had managed to gather as many as 40,000 infantry and 4,000 cavalry to confront the smaller force of Scipio with 30,000 infantry and 6,000 cavalry. Though at the time the march began, Masinissa had not yet reached Scipio and Carthaginian spies were allowed into the Roman camp so they would see the lack of cavalry on hand. Encouraged, Hannibal hurried to Scipio's camp intending to use his own cavalry to overwhelm the Romans, unaware that Masinissa and his vaunted Numidians would soon arrive.
As the two armies were drawn up in their lines, Hannibal requested a meeting directly with Scipio. With the two armies drawn up in battle formation, Hannibal met Scipio in an indecisive parley. Hannibal felt that, though Rome had the advantage in the war, his superior strength on the field could save Carthage from any further destruction. He offered Spain, Sicily and Sardinia to Rome along with the guarantee that Carthage would never again attack, but Scipio refused. Knowing that Masinissa would arrive shortly, the scale would tip back towards the Romans in terms of battlefield strength, and Hannibal didn't offer anything that the Romans hadn't already won. After the time gained through the parlay, Masinissa arrived and avoided an attempt by Hannibal to prevent the merger.
Scipio chose the site of his own camp for the battle, situated on a natural spring. Hannibal meanwhile was deep within African territory without an easily accessible source of water for his army. The flat plain was to be the future site of the Roman colony of Zama, and the battle was named for this colony 150 years after it happened.
Hannibal's plan was a basic recreation of his tactics at Cannae. While a sound plan he failed to take several things into account. His cavalry was inferior to that of the Romans, his army consisted of a great many inexperienced recruits, and now he faced a general as capable as himself in Scipio, rather than the inept leadership shown by the Romans in Italy. Hannibal placed all of his elephants in the front of his army, with mixed infantry behind and cavalry on the flanks. He hoped the elephants would route the central lines of the Romans while his cavalry could envelope it from the flanks.
The battle opened with the elephants charging the Roman lines. While a frightening sight to the Romans, Scipio's plan worked and the elephants went neatly into the open lanes. Scipio's men shouted and banged their swords on their shields, archers attacked the riders, and the spearman attacked the sides of the elephants. The great beasts quickly panicked and turned on their own lines to escape the carnage. They moved directly against Hannibal's own cavalry essentially wiping out one entire flank. Now without his elephants and an already inferior cavalry only weaker by this disaster, Hannibal was in deep trouble before the infantry even met.
Scipio then turned the tables and used much the same tactics at Zama as Hannibal had at Cannae. His cavalry pushed Hannibal's aside with ease, driving them off, and the infantry met in the center. At first, the Roman front line was beaten badly in the center, but Scipio left more men in reserve, forcing Hannibal to leave some men uncommitted. Before long, the regular legionaries began to push back the front of Hannibal's force, but their own reserve line wouldn't let the retreating Carthaginian's through the lines to safety. While Hannibal's front lines were destroyed, his own vaunted veterans stood in the Roman's path. Both armies extended their lines as long as possible to prevent being flanked, and Scipio failed to encircle Hannibal. Both lines fought fiercely with neither infantry gaining an advantage and it looked as if Scipio's plan to emulate Cannae might fail. At the critical juncture, however, the Roman and Numidian cavalry broke off its pursuit of the fleeing Carthaginian cavalry and returned to attack Hannibal's flanks. Despite the brilliance of his veterans, the Carthaginians had no chance while being crushed on all sides. The Carthaginians soon broke and the battle, and the Second Punic War, would soon be over.
16 years after his invasion of Italy, the army of Hannibal was destroyed and Carthage was defeated. As many as 20,000 men of his army were killed with an equal number taken as prisoners to be sold at slave auction. The Romans meanwhile, lost as few as 500 dead and 4,000 wounded. Scipio, having defeated the master of all strategists of the time, now stood as the world's greatest general. As a reward for his success, Publius Cornelius Scipio was awared the cognomen Africanus. Hannibal, however, managed to escapethe slaughter and returned to Hadrumetum with a small escort. He advised Carthage to accept the best terms they could and that further war against Rome, at this time, was futile.