Hannibal was defeated by the Romans on their terms, not his. First they hemmed him up in the area of the heel of Italy, then they took away his empire, then they threatened to take his homeland. In short, he was a victim of his own lack of millitary/strategic intelligence in that he failed to appreciate the strength of the alliances with the Socii. He was as unable to take Rome after Cannae as he was before it, or at any other time in his life. Hannibal was a tactical genius, but what does that make the men that beat him? (Fabius, Marcellus, Scipio, et al)