Hannibal Barca defeated 8 Roman legions in the Battle of Cannae. At that time Carthage also had control over Hispania. Why did Hannibal not seize Rome at that time?

  • Welcome to History:SE. Could you edit your question to clarify what you've looked into already, complete with links and references, and context if applicable? In particular, please let us know what you find missing or unclear about the Wikipedia entry on the topic, if one exists. This allows those who might want to answer to do so without needing to redo the work you've already done. You might find it helpful to review the site tour and Help Centre and, in particular, How to Ask.
    – MCW
    Commented Nov 25, 2019 at 13:01

7 Answers 7


Short Answer:

  • His army was too small to either assault or securely besiege Rome
  • Rome itself remain defended by two legions and a large, conscriptable population
  • Marching on and laying siege to Rome was beyond his logistical capacity
  • He cannot realistically defeat Rome while her Latin and Italian allies remained loyal

The traditional analysis is that Hannibal probably could not have taken Rome, and perhaps more importantly, knew that he couldn't, despite his brilliant victories in the field. A complementary analysis is that in recognition of this, his preferred strategy is to disrupt Rome's alliances.

Cities typically fall in one of three ways: being starved into submission, being taken by force, or outright surrendering. Rome was adamantly against peace, as evidenced by their rejection of Hannibal's terms (and probably, due to knowing their own strength). A successful siege was similarly unlikely; despite her devastating defeats, Rome remained very populous with plenty of manpower. While Roman allies in Italy remained loyal, Hannibal's army was too isolated and small to take on Rome on its own.

The prolific Punic Wars writer, Professor John Francis Lazenby from the Newcastle University, offers some convincing arguments about the difficulties Hannibal would have faced at Rome:

Lazeby advances several reasons why Hannibal did not march on Rome: Rome was 400 kilometres away, and there were two legions in the city to defend it, as well as the male members of the population; Rome still had troops and could raise others; whether Hannibal could take Rome quickly was uncertain and a siege could drag on; also Hannibal's aims were to detach the Latin and Italian allies from Rome. Hannibal did not want a war to the death with Rome; the war was about dignitas and imperium, and he proposed peace, though his ambassador to Rome, Carthalo, was turned back by the orders of Marcus Junius Pera, dictator for 216.

- Dillon, Matthew, and Lynda Garland. Ancient Rome: A Sourcebook. Routledge, 2013.

This is AFAIK the predominant view. There are other viewpoints on why Hannibal couldn't take Rome, but I doubt many think that Hannibal had a moment of insanity and chose not to march on Rome for no good reason. For example, Professor John F. Shean argued that Hannibal was limited by logistics.

In any case it is unlikely that Hannibal could have realistically considered marching on Rome from Cannae. Shean convincingly argues that Hannibal's campaigns were largely dictated by his logistical situation, and that after Cannae his army scarcely had supplies for a few days, let alone a three-week march. If he had made it to Rome the subsequent siege could have lasted for months, if not years, posing a logistical nightmare since his army's opportunities for foraging would have been limited by being permanently stationed at one point. Even if Hannibal had wanted to follow up his victory at Cannae by marching on Rome, it is incredibly unlikely that he would have been able to do so.

- Daly, Gregory. Cannae: The Experience of Battle in the Second Punic War. Psychology Press, 2003.

  • 5
    If Hannibal had tried to besiege Rome, he would have been trying to starve the Romans into surrender. This would have required his own army to remain stationary, effectively besieging himself. A small force in enemy territory has to stay mobile or be overwhelmed eventually, as Hannibal well knew.
    – Marc
    Commented Nov 25, 2014 at 18:39
  • 1
    Agreed - his goal wasn't to take Rome, but to detach the allies and remove its power to that of a local state. He might have been able to do that, but failed. Conquest was out of the question.
    – Oldcat
    Commented Mar 10, 2015 at 22:41
  • 1
    The other issue, critical in contemplating any siege, is whether Hannibal actually had a large enough force to meaningfully invest Rome. If he could not ensure keeping all Roman forces inside the city any attempt at siege was a very fast way to lose his own army, and thus the war, through self-starvation. Commented Nov 23, 2019 at 18:59

(Refer to map below)

After the Battle of Cannae (2 August 216 BC), Hannibal went immediately to Compsa (1), where he set up a base and took some of forces and sent them on a mission to collect allies in that area. He then gathered his main army and went to Naples (2) where he was hoping to take control of a seaport. When he got to Naples he found it had very strong walls and was determined to resist him, so he passed it by and went to Capua (3), a large city. At Capua the city agreed to ally with him and he occupied the city, although there were dissenters. He then turned south to reduce Nola (4), a smaller city. Nola submitted to Hannibal. However, the Roman Praetor Marcellus (blue dots) coming from Cassino caused Capua to swing back to Rome, then shadowed Hannibal to Nola. Hannibal then abandoned Nola and went first to the coast to see if he could get access to a port, but forces in Naples had become even stronger, so he went on to Nuceria (5), which he besieged and eventually captured by force, burning the city to the ground. Hannibal then returned to Nola (6), which Marcellus had occupied, and invested it, but Marcellus surprised him by sallying forth from the walls unexpectedly, killing a large number of Carthaginians, then retreating back within the walls of the city.

Hannibal 216

Having suffered this defeat Hannibal left off of Nola and went north to Acerra, which resisted him. He took the city, plundered it and then burned it. He then continued north to Capua and then to Cassino (7), a small town which was a Roman stronghold. He besieged this town, but could not take it (partially because the Volturnum River was part of the defenses), and winter was approaching so he retreated back into Capua where he made preparations to spend the winter.

Thus, Hannibal's campaign of 216 was over with him unable to even take Cassino, much less approach Rome.

So, you can see, Hannibal made every effort to advance onto Rome, but was unable to get past Cassino in 216, despite his success at Cannae.

  • Will you add the map?
    – andy256
    Commented Mar 11, 2015 at 0:34
  • @andy256 Can you not see the map? Commented Mar 11, 2015 at 1:16
  • No. If I go to edit mode, I see in the body where it should be, but in the normal view it is not visible to me.
    – andy256
    Commented Mar 11, 2015 at 1:19
  • PS I'm using Firefox 36.0.1
    – andy256
    Commented Mar 11, 2015 at 1:20
  • @andy256 Try that, it may because I had brackets in the text. Changed them to parentheses. Commented Mar 11, 2015 at 1:23

Hannibal's troops were not numerous enough (about 40,000 after the battle) to have a hope of taking Rome, which had a very large population (somewherere around 200,000) and was well fortified (the Servian Wall) and surrounded by allies who could launch surprise attacks against a besieging army.

The only real chance Hannibal had was turning those allies against Rome - which is exactly what he tried to do, for years, without decisive success.

  • 3
    But one could argue that Rome's army at the time was maybe even smaller, regarding Rome's population most of them would be slaves, possibly not so interested on who would rule them, Rome or Carthago Commented Nov 25, 2014 at 10:25
  • @JuanAntonioGomezMoriano I have learned a lot about Rome since writing this answer, and can respond now: first, slaves were not a majority of the population of rome, high estimates are 30%. Second, Roman slaves could hope to be freed, and in the case of a siege, that would be an obvious way to motivate them. They were unlikely to fare better in a sack of the city, as Carthago was also a slave-holding society. Commented Sep 5, 2023 at 13:41

Romans pulled on him the same trick the Greeks from Syracuse pulled on Carthage some 200 years prior when Carthage was laying siege to Syracuse. The Syracuse tyrant took almost all the men he could spare, sailed to Africa and rampaged around Carthaginian lands which forced the force near Syracuse to withdraw to face him, thus saving the city. Same thing, just Romans won the battle in Africa and Rome was never directly threatened (although Hannibal was "at the gates" he never attacked).

Simply, he did not have the manpower and resources to do so. He could only hope to turn all Latin people to his side and to gain a port so he could get reinforcements. It's amazing what he was able to do with such a little force deep inside enemy territory. Romans were also not sitting on their asses, but were constantly following him around, harassing and taking back cities he just left.

The thing that interests me more is why the Greeks didn't seize the chance and ally with Carthage to finish Rome off, seeing as Rome was a threat to all of them. Maybe they didn't take them seriously yet.

  • 5
    Sources would improve this answer, particularly since this contradicts my recollection of Roman history. At least to my recollection, after Cannae, there were no Roman troops on Carthaginian soil. My recollection is that nobody knows why Hannibal didn't follow up on his victory at Cannae. (Hat tip to @ed.hank for correcting my memory..
    – MCW
    Commented Sep 17, 2018 at 14:42

This is all speculation and since Carthage was literally wiped off the map eventually by Rome we can only draw inferences as we don't know what the strategic plans of Carthage were...if any. My educated guess is that Hannibal and his allies and Army had no intention of taking Rome without a follow on attack by a second Carthaginian Army or at least dramatic support from the "vaunted" Carthaginian Navy...neither of which Hannibal nor his Allies received.

His Army and Allies lived well in the Roman Countryside and Rome and her Allies certainly did not. But Rome then attacked North Africa not Hannibal's Army in Italy forcing him and ultimately all of his Army and Allies off the Italian Penninsula.


To answer the original question, let's set up a model of how the siege would have gone and compare it to a model of a field battle.

Pretend for a minute that Hannibal had a 10 man Army in the field against a comparable Roman Force. That 10 man Army would be deployed in a contiguous formation with lateral lines of communication to all parts of the force (in other words, relatively simple to control). Further more they would either be deployed to defend or oriented against a single piece of key terrain. Most importantly, all 10 men are available to defend their key terrain or attack the key terrain against which they are oriented. Hannibal was able to direct his full capability to such combat. It's a 10 on 10 fight with Bill Belicheck coaching the Carthaginians and Greg Schiano coaching the Romans.

PRetend for a minute now that Hannibal has the same 10 men against the Romans inside Rome. Now the romans have a comparable trained military and 20 or 30 more peasants, blacksmiths, slaves, etc who can still swing a sword, hurl rocks, dump boiling oil, etc. To assault these 30 or 40 pax inside their wall Hannibal now has to release 2 of his 10 to build and defend lines of contravallation (fortifications protecting his siege force), 2 of his 10 to scout for enemy reinforcements beyond the contravallation, 2 of his 10 to picket possible escape routes from the Roman wall, and 2 of his 10 build trenches, siege machines (if they are capable), and foraging. Hannibal now has 2 men to assault the Romans 30 or 40 inside the wall.

Hannibal could dominate in the field because his Army was a field Army. He was a maneuver specialist. Siege warfare is not maneuver warfare. He could nor more lead a successful siege against Rome then Hitler could mount an amphibious invasion of Britain.

  • 4
    Lots of opinion and irrelevant information, and no substantiation. Who are Bill Belicheck and Greg Schiano? What did they have to do with it? And what is the relevance of Hitler?
    – andy256
    Commented Mar 11, 2015 at 0:40

The answer to this question is very simple. He never thought of taking Rome, he always thought after Rome suffered so many defeats, the Battle of Cannae the worst, he only thought that Rome will Sue for peace after so many defeats, many say the reasons why he didn't attack Rome was his army too small, or he was afraid of soldiers protecting Rome, what are you talking about? In every battle Hannibal's army was smaller in size than the Roman army and he still won because he was a genius and in every battle he had a surprise for Romans, the Battle of Lake(ambush) and the Battle of Cannae show that... So the answer is he could take Rome, but he didn't want too because he thought Rome would sue for peace.

Not the answer you're looking for? Browse other questions tagged or ask your own question.