Chiến tranh Punic lần thứ hai
Hannibal nắm thế chủ động (218-213 TCN) > Miền Trung Địa Trung Hải > Tìm kiếm một trận đánh quyết định

Bài chi tiết: Trận Cannae
Fabius dần làm mất lòng dân chúng thành Roma, kể từ lúc chiến thuật của ông đã không dẫn đến một kết thúc nhanh chóng cho cuộc chiến. Dân La Mã chế giễu ông là Người Trì Hoãn, và trong cuộc bầu cử vào năm 216 trước Công nguyên, họ đã bầu Gaius Terentius Varro làm chấp chính quan, ông ta là người vốn chủ trương theo đuổi một chiến lược chiến tranh hung hăng hơn và Lucius Aemilius Paullus, người ủng hộ một chiến lược giữa giữa các chiến thuật của Fabius và các chiến thuật được đề xuất bởi Varro. Trong chiến dịch năm 217 TCN, Hannibal đã thất bại trong việc giành được sự ủng hộ giữa những cư dân Ý. Vào mùa xuân năm 216 trước Công nguyên, ông đã nắm lấy thế chủ động ​​và đánh chiếm kho lương lớn tại Cannae ở vùng đồng bằng Apulia. Như vậy, bằng cách chiếm Cannae, Hannibal đã tự đặt mình vào giữa những người La Mã và nguồn cung cấp lương thực quan trọng bậc nhất của họ. Viện nguyên lão La Mã đã trao quyền xây dựng một đội quân lớn gấp đôi cho hai chấp chính quan Varro và Aemilius Paullus. Theo một số ước tính, người La Mã đã xây dựng một đạo quân lớn lên tới khoảng 100.000 người, mặc dù con số này không thể hoàn toàn được xác nhận.
Hai chấp chính quan Aemilius Paullus và Varro quyết tâm đối đầu với Hannibal và họ hành quân về phía nam tới Apulia. Sau một cuộc hành quân kéo dài hai ngày, họ đã tìm thấy ông ta ở bên bờ trái của sông Aufidus, và đóng trại cách đó sáu dặm (10 km). Hannibal đã lợi dụng sự háo hức của Varro và lừa ông ta vào một cái bẫy bằng cách sử dụng một chiến thuật bao bọc nhằm loại bỏ ưu thế về quân số của người La Mã. Hannibal đã bố trí lực lượng bộ binh ít đáng tin cậy nhất của ông ở trung tâm của hình bán nguyệt, với hai bên cánh bao gồm kị binh người Gaul và người Numidia. Các quân đoàn La Mã đã tấn công mạnh nhằm vào khu trung tâm yếu của Hannibal, nhưng các lính đánh thuê Libya ở hai bên cánh, lại đe dọa sườn của họ. Cuộc tấn công bởi kỵ binh của Hannibal là không thể ngăn cản và viên tướng kị binh Hasdrubal  (không nhầm lẫn với em trai của Hannibal đang tiến hành chiến dịch ở Iberia ), đánh tan tác kỵ binh La Mã La Mã bên cánh phải và sau đó càn quét xung quanh hậu phương của quân La Mã và tấn công kỵ binh của Varro bên cánh trái của người La Mã, và sau đó là các quân đoàn, từ phía sau. Kết quả là quân đội La Mã bị bao vây và không còn đường trốn thoát. Nhờ các chiến thuật tuyệt vời này, Hannibal, với quân số thua kém hơn nhiều, đã tiêu diệt gần tất cả quân La Mã trong trận này. Đã có ước tính rằng khoảng 50,000-70,000 người La Mã đã bị giết hoặc bị bắt làm tù binh ở Cannae.
Như Polybius đã ghi lại: "Nặng nề hơn cả thất bại ở Cannae, là việc những đồng minh cũ của La Mã, những thành bang tưởng như trung thành hết mực, nay đã rời bỏ liên minh chỉ với một lý do đơn giản, họ đã hết hy vọng với sức mạnh của La Mã." Cùng trong năm này, các thành phố Hy Lạp trên đảo Sicilia bắt đầu nổi dậy chống lại sự cai trị của La Mã, cùng với đó, vua Philippos V của Macedonia cũng tỏ sự ủng hộ Hannibal bằng cách phát động cuộc Chiến tranh Macedonia lần thứ nhất chống lại La Mã. Hannibal cũng củng cố được liên minh với vị vua mới Hieronymus của Syracuse, thành bang độc lập duy nhất ở Sicilia, và người Tarentum cũng đứng về phía ông cùng thời gian đó. Người Gaul ở miền Bắc Italia cũng trở thành một lực lượng ủng hộ Hannibal. Hannibal bây giờ đã có đủ nguồn lực và nhân lực cần thiết để tiến hành một cuộc tấn công thành công vào thành Rome. Tuy nhiên, ông lại không chắc chắn về tính khả thi của cuộc tấn công này và đã dành rất nhiều thời gian cân nhắc nó. Trong khi ông do dự thì người La Mã đã có thể tập hợp lại, và cơ hội đã trôi qua. Một sự kiện đáng chú ý khác trong năm 216 trước Công nguyên là sự đào ngũ của Capua, thành phố lớn thứ hai của Ý, Hannibal đã biến nó thành căn cứ mới của mình. Tuy nhiên, ngay cả điều này cũng không thể làm ông hài lòng vì chỉ có một vài thành bang ở Ý mà ông đã dự kiến ​​sẽ giành được như những đồng minh đã đồng ý đứng về phía ông. Hơn nữa, hải quân Macedonia lại không thể giao chiến với hải quân La Mã, do đó, họ không thể để giúp ông một cách trực tiếp được.
Hannibal đã gửi một phái đoàn đến La Mã để đàm phán một nền hòa bình và một đề nghị khác về việc trao đổi những tù nhân La Mã của ông để đổi lấy những khoản tiền chuộc, nhưng Roma đã từ chối tất cả các lời đề nghị.