One theory from Delbrueck:
Hannibal wanted to win the battle with his infantry, which was superior to the Romans, and distract the Roman cavalry. Therefore, he wanted the cavalry clash to happen first, the idea being that his cavalry would be routed, the Roman cavalry would pursue them and be out of the battle, and he could start the infantry battle.
Delbrueck here suggests that Hannibal used his elephants as a way of delaying the infantry battle. Honestly, I can't think of another reason for doing it: elephants were generally known not to be all that effective against infantry, and Hannibal already had the advantage there. Elephants were effective against cavalry, and so the normal use would be to disrupt the Roman cavalry to give the Carthaginian cavalry a chance.
Anyway, the elephants were largely ineffective against the Roman infantry, the Roman cavalry pursued the routed Carthaginian cavalry, and Hannibal's infantry was winning the battle. Then the Roman cavalry, instead of pursuing the Carthaginians further, returned and fell on Hannibal's rear, deciding the battle.