Think of baseball: base hits are nice, but hits don't win the game. In football, yardage gains are wonderful, but they only win when they reach the end zone. It's not uncommon to post better raw stats than your opponent and still lose the game.
Hannibal was a tragedy and his ultimate defeat a folly. He was hung out to dry by the businessmen of Carthage, who, if they understood the stakes and the urgent necessity he was in, were all the more culpable for their refusal to send him the funds he needed to unravel the Roman alliance and co-optation system in Italy. Hannibal, having won four great unanswered victories, suddenly found himself in a bad jam because of the latent power of the Roman patronage system -- a political problem that required large applications of silver solvent, which the Carthaginians reneged, to their ultimate ruin. Polybius tells the story, if you want to look it up on one of the classical-history sites.