Although Scipio did defeat Hannibal, he only won because he used Hannibal's tactics. You must also remember that Hannibal ruled a empire ruined from the previous war and rose above Rome. Rome had wealth and well trained soldiers and Hannibal didn't. Yet the Romans lost many battles again and again. Scipio won because he copied other ideas.