PING
Thanks Tennessee Nana.
Carthage had standing armies that were experienced (a good many mercenaries, foreign and otherwise), whereas the Roman forces at that time were raised, trained, and equipped in a hurry, and led by whatever high society joker fancied himself the next war leader.
Despite his advantages, Hannibal couldn't finally defeat the Romans in fourteen years spent in Italy, and Scipio (the future Scipio Africanus) took the fight into Iberia, knocking out the Carthaginian domination in most of it, then carried on into Carthage's home territory.
The political class in Carthage had been glad to see Hannibal leave town, but when the threat was approaching their walls, he was evacuated by sea from Italy and with the remainder of his forces borne back to Africa. Scipio had turned some of Carthage's allies, and was (even according to Hannibal, who had a mighty high opinion of himself by then) just a better field general, with trained and experienced troops. The Carthaginians were defeated, Carthage agreed to terms making future aggressions difficult, and the Carthaginian political factions were "gifted" with Hannibal as their new leader.
He nursed his hatred of Rome, siding and aiding the Seleucid dynasty in the east, but eventually having to flee Carthage and working as a sort of ancient military consultant for various adversaries of Rome. Finally the Roman reach was such -- and patience had run out -- and the old SOB was cornered. He committed suicide instead of being killed by the Romans or taken prisoner.
It may be of interest that while he was in charge in Carthage after the 2nd Punic War, Hannibal introduced an elected version of the supremos of the city (I'm sure the elections were unfair and corrupt of course) along with term limits. However, he's easily the most overrated commander of the ancient world.