Le dictateur Quintus Fabius Maximus Verrucosus est rappelé à Rome pour des cérémonies sacrées. M. Minucius Rufus, maître de la cavalerie, prend le commandement de l’armée par intérim. Il attaque Hannibal et remporte un succès. À Rome, soutenu par le parti démocratique et le tribun M. Melilius, le maître de la cavalerie obtient par un plébiscite l’égalité du pouvoir à celui du dictateur. L’armée est divisée après le refus de Fabius d’instaurer un commandement en chef alternatif. M. Minucius Rufus attaque Hannibal qui lui a tendu une embuscade et le tient en échec. Fabius intervient avec ses troupes et parvient à le tirer d’affaire. M. Minucius Rufus accepte son erreur et reconnaît le commandement de Fabius. Il se fera tuer à Cannes.
À Rome, les partisans de l’offensive, avec à leur tête Varron, soutenu par le tribun Q. Baebius Herennius, reprennent l’avantage. Les consuls Paul Émile et Varron, à la tête de 86 000 légionnaires, rencontrent les 45 000 hommes d'Hannibal à Cannes, en Apulie. Mais la cavalerie romaine ne vaut pas, ni en nombre ni en qualité, celle d’Hannibal. Varron place son armée en ordre compact. Hannibal rachète son infériorité numérique par la tactique de l’enveloppement par les ailes, qui accule les Romains au désastre. Soixante-dix mille Romains, dont le consul Paul Émile et quatre-vingts sénateurs restent sur le champ de bataille, alors qu’Hannibal a perdu environ 4 000 Gaulois, 1 500 Espagnols ou Africains et 200 cavaliers. Hannibal, malgré les conseils du commandant de la cavalerie Maharbal, ne marche par sur Rome, trop loin (350km) et encore bien défendue.
Manlius s’oppose au rachat des prisonniers romains fait à Cannes[4].
Après la défaite de Cannes, quatre personnes sont emmurées vivantes sous le forum Boarium après une consultation des livres sibyllins[5],. C'est le seul cas connu de sacrifice humain dans l'histoire romaine.