Some historical events are down to chance, but others are down to choice. After Cannae, Hannibal elected not to march upon Rome. The decision has been frequently debated in the 22 centuries since it was made.
First of all, a little background. Hannibal had already shocked the Romans by marching to Italy in winter, which involved passing the Alps (defended not only by bitter winds and snowfall but also hostile Celtic tribes). After this, he slapped the Roman army about, winning at Trebia, luring Flaminius into arguably the greatest ambush in history at Lake Trasimene and so demoralising the Romans that they made Quintus Fabius Maximus dictator. Quintus took the very un-Roman step of choosing to play a strategic game, refusing to battle Hannibal directly and instead dog his steps, starve him of provisions and generally prevent him from gaining the big tactical victories he had previously enjoyed. This was highly controversial, as the standard Roman tactic was to point a big army at The Enemy, march forward and kill everything that didn’t look Italian. Despite an uppity deputy, the dictator was highly successful and Hannibal did not gain another big victory to invigorate his supporters.
After this, the dictatorship lapsed and Varro and Paullus were made consuls. They combined their consular armies and, for good measure, doubled them in size, putting a force of about 80,000 into the field. This army, despite consular disagreement, then attacked Hannibal’s forces (roughly half the size) and was thoroughly obliterated by perhaps the finest battlefield tactics in the Ancient World (or, perhaps, ever).
Hannibal had survived the sly intelligence of the dictator, smashed the largest Roman army ever assembled in a battle with slaughter on a scale not dissimilar to WWI and was now posed a difficult question: Should he march on Rome?
He decided not to.
There are many sound reasons for this. Firstly, it was still an era when a Roman citizen and a Roman soldier were practically interchangeable, and Rome was a large city (despite the huge numbers Hannibal had killed). Secondly, it was a walled city, and Hannibal had no siege engines and little experience of sieges. Thirdly, it would tie Hannibal’s army down, and keeping such a force fed and watered and preventing an external army from attacking it could prove highly difficult.
Hannibal did survive for many years in the Italian peninsula after this, but to no avail. He was recalled to Carthage to face Scipio Africanus and had his first and last loss of the Second Punic War.
So, what if he had marched on Rome?
I think it unlikely that he could have taken it by storm. The Romans were patriotic to an almost deranged extent. After Cannae the land upon which Hannibal’s victorious army rested was sold at full value in Rome, indicating the confidence/bravado of the Romans even after a crushing defeat. It’s always possible an internal conspiracy could have opened the gates, but for similar reasons I think this unlikely.
What’s more interesting is to consider the social/political impact of such a move. An army encamped outside the walls of Rome, led by a man who had repeatedly massacred the Roman army, might have caused a shock to the allies of Rome. Might more of them have abandoned the city if she had seemed helpless before the Punic conqueror? This might have enabled Hannibal to grasp a strategic victory and either conquer Rome or force a favourable peace treaty.
Ultimately, I think Hannibal made the right choice. As I think it unlikely he could have taken Rome, marching to it and then leaving it untaken would have dealt a severe blow to the morale of his men. The misfortune he faced was to fight Rome at the time of its patriotic zenith. Centuries later, the city repeatedly fell, surrendered and crumbled before lesser men, but when Hannibal fought it was still blazing determination and confidence.