情形对罗马人是极其有利的,不仅因为汉尼拔的形势已经极其严峻,更因为迦太基的元老院内党派的争斗竟然导致了拒绝给汉尼拔以任何的增援,甚至于嘲笑他。从战略上看,汉尼拔已经陷入绝境。然而罗马人自己的愤怒给了汉尼拔机会,当费边的独裁官届满之后。罗马元老院认为无论如何要“堂堂正正”的击败汉尼拔,以雪前耻。于是,再次在罗马城内征集了2万士兵,由琉喜阿斯·伊密利阿斯和特林提阿斯·发罗指挥。他们明确要求必须尽快击败汉尼拔,否则罗马将因为长期兵役、赋税和战火而贫穷,失去意大利主人的位置。
伊密利阿斯是个有经验的指挥官,他认为应当延续费边的战略,彻底困死汉尼拔。但发罗则是依靠煽动民众才当选了执政官,他渴望以战争的胜利来进一步提升自己的名誉,因此煽动军队和许多军官要与汉尼拔决战——他们的军队数目大约2倍于汉尼拔,仅仅在骑手部队方面处于劣势,显然他有足够的理由认为自己方面处于巨大的优势中。因此,前216年8月2日,罗马军队与亟需战斗以解除被封锁局面的汉尼拔迦太基军队爆发了历史上著名的坎尼会战。
汉尼拔在坎尼休整了较长的时间,因此对这一地区的自然情况比较了解。他知道中午有猛烈的东风,因此其既设阵地的选择是背东面西的,又在附近的一个有许多树林的山谷里面埋伏了许多骑手和一批轻装部队,命其在东风刮起来的时候出击,袭击罗马军队的后卫。有安排了500名克勒特——伊伯利亚人身藏短剑,准备假投降。而其军队的阵列则更是精心考虑过的。中央的步兵兵力相当薄弱,仅有3排阵列,主要是西班牙步兵和高卢步兵,呈新月形向前凸出,而两翼则是精锐的努米底亚步兵和迦太基骑手,且兵力相当雄厚,尤其是左翼特别加强了骑手部队的力量。
会战于上午八时许爆发。罗马军队的中央阵线由伊密利阿斯统帅,将迦太基的中央阵线向后压迫,迦太基人按照既定的部署逐步退却,逐渐将新月形的阵线后退为反新月形的阵线。与此同时,预先安排的500名克勒特人出列投降,因为战斗激烈,罗马人没有将他们捆绑,而是仅仅收缴了他们的长矛和盾牌,便将他们置于后方。两翼优势的迦太基骑手迅速对两翼的罗马骑手发起进攻,罗马军左翼的骑手首先在强大的压力下崩溃,随即右翼的骑手也崩溃了。罗马军步兵的两翼直接暴露在迦太基骑手的打击下。











