气，汉尼拔于是进兵至义大利南方之罗马粮仓坎尼城。8月2日，迦太基军与罗马军相遇，大战爆发。汉尼拔运筹帷幄，成功地以少胜多，击溃了由罗马执政官保卢斯与发罗二人所统领的大军。此战虽然并没有令迦太基彻底击溃罗马，但汉尼拔战术运用之高妙，使之时至今天，仍被誉为军事史上最伟大的战役之一。罗马人在特拉比亚会战（前218年）与特拉西梅诺湖会战（前217年）的惨败中恢复过来后，打算在坎尼与汉尼拔决战，并且派出了约八万七千名罗马同盟军出战。罗马军将右翼置于奥非都斯河附近，骑兵放于两翼，而重步兵则集中在中军。为了对付罗马的