On August 2, 216 BCE, Hannibal’s army defeated the Roman troops in the Battle of Cannae, 250 miles away from Rome. It was their third victory in a row, and the second greatest defeat ever suffered by a Roman army up until that point in time.
For millennia, historians—including Livy—have argued that Hannibal should have used the momentum gained from that victory to launch an attack on the city of Rome itself and decisively win the Second Punic War.
But he didn’t. Instead, Hannibal marched into Campania and lost the Second Punic War. Though baffling on the surface, Hannibal’s decision comes down to something extremely practical: numbers, supplies, and logistics.
Before beating the Romans at Cannae, Hannibal’s troops had had to trek through the Alps, make their way through the marshes of the Arno River, and down through the Italian Peninsula.
Map depicting Hannibal’s route of invasion; courtesy of the Department of History of the United States Military Academy
Major landmarks and theaters of Hannibal’s invasion of Italy (for the purposes of this post). Map from The Punic Wars: 264-146 (Essential Histories) by Nigel Bagnall
Huge amounts of men, animals, and supplies were lost along various points of this journey, and the remaining men were so weak that their only choice was to operate on a schedule dictated by supply. Their victories over Rome may have given them a word-of-mouth advantage, but it certainly did not magically alleviate their supply-related concerns.
As noted above, Cannae is about 250 miles away from Rome. The quickest pace at which Hannibal’s army could have possibly marched was twenty miles per day. If they were to keep a pace of twenty miles per day, every day, they would have been able to reach Rome in a little more than twelve days. However, that is not a pace at which they logically would have been able to travel.
Hannibal would have required about 544,920 pack animals to carry all the food needed by his men; this calculation does not take into account the fact that pack animals had to carry their own food. Theses animals were often underfed due to the amount of time needed to gather their food, meaning that they would have been too weak to march along at a sustained rate.
In addition to the slow march of the pack animals, the army needed time to rest and gather supplies, which would have slowed them down even more; it is also likely that they would have been delayed by attacks sustained en route, as they were operating deep within enemy territory. When all of these lags and delays are taken into account it becomes clear that the maximum possible speed at which they could have marched comes to about eight miles per day. At that pace, it would have taken them almost thirty days to reach Rome.
Hannibal knew that his army lacked the resources to be able to sustain that march and then carry out a successful attack on Rome. So he did not attack Rome.
The historians who do understand this tend to put their efforts into arguing over what Hannibal should have done following his victory. I tend to think he was right in proceeding into Campania with the goal of dismantling the Roman system of alliances within that theater, but erred in his misunderstanding of local politics and power dynamics.
But obviously, we can never know what would have happened. We can only know what did happen, and why it happened. Hannibal did not march on Rome because he knew that his supplies would not sustain such an endeavor.