公元前3世纪,在地中海西部的意大利半岛上,出现了一个崛起的新势力——罗马。公元4世纪初,罗马人进入征服意大利的战争,他们先向北征服特刺里亚、阿尔卑斯山南的高卢和拉提乌姆;继而又染指意大利中部的康帕尼亚和萨姆尼乌姆。到公元前290年,罗马人终于征服了意大利中部。接着罗马势力向南部意大利渗入。公元前275年春天,在萨姆尼乌姆中部的贝尼温敦附近,打败了统治南意大利的希腊埃布鲁斯王皮洛士的精兵部队。从此,罗马人征服全部意大利,成了西地中海地区最大的国家之一。罗马统一了意大利之后,其经济迅速发展,商人在罗马政治中的作用日益显著,进而直接影响了罗马的政策。他们要求向海外扩张。而粮食丰富、海上贸易居重要地位的西西里岛,便成了他们争夺的目标。
公元前264年,两大强国因争夺西西里开始发生战争。罗马人称迦太基为布匿,因此,把这次战争称为布匿战争。第一次布匿战争一直延续到公元前241年才结束。战争中罗马人以最大的毅力和力量发展海军。他们以飞的速度,只用一年时间建造了100艘五层甲板的大战船和20艘三层甲板的战船,创造了一种新的海军战术。公元前260年,罗马人在墨萨拿以西米拉海角取得第一场海战的胜利,控制了西西里附近的海域。迦太基终因战争拖得太久,民穷财竭,不得不请求媾和,于公元前241年同罗马订立和约,向罗马缴讨大量赔款,割让西西里。
23年后,迦太基的新统帅汉尼拔率领军队,以惊人的胆略翻过被认为是无法逾越的阿尔卑斯山,突然出现在罗马本土意大利平原上,并在公元前216年春攻占了罗马的重要粮仓坎尼,使罗马大为惊慌。罗马的执政统帅瓦罗便率8万步兵和6000骑兵向坎尼进发,决心夺回这座城市。
在第二次布匿战争开始时,迦太基将军汉尼拔在冬季时率领大军经阿尔卑斯山进入意大利,并迅速地连败罗马军两次(特雷比亚会战与特拉西梅诺湖会战)。经过这些败绩后,罗马人委任费边为独裁官,其决定与汉尼拔打消耗战,并截断其补给线和拒绝与之正面交战,但是这些战术并不为罗马人所认同。
当罗马人在汉尼拔大胜的惊讶中醒觉过来后,开始怀疑费边战术的有效性,结果给了迦太基军队回复元气的机会。费边的战略使得那些极欲在短期内终结战争的主流人们感到失望。而且当时人们亦普遍相信若任由汉尼拔在意大利抢掠而不阻止的话,则罗马的同盟们可能会背叛并与迦太基人联盟,因此会因罗马的消极战略使认为罗马无法保护自己。
在公元前216年,罗马元老院重新开始执政官选举,并选出发罗与卢基乌斯·埃米利乌斯·保卢斯为执政官。与此同时,一支空前庞大的军队组成了。据希腊政治家和历史学家波利比奥斯所载,“其欲派出八队罗马军团前往战场,这在罗马史上是第一次。每一个军团有着大约五千人。以往罗马人的战争大多只是由一名执政官与两队罗马军团负责,并由罗马的同盟分担部份兵力,同时召集四队罗马军队在同一场战争里已很罕见。但在此次,形势极为险峻,所以罗马决定派出不止四队而是八队罗马军团前赴战场。”大军包括了二千四百名罗马骑兵与四千名同盟骑兵,总共有八万六千四百至八万七千名士兵。每一军团有着相同数量的同盟军备队(步兵与骑兵皆是),面对汉尼拔的罗马军队数量差不多有九万人,部分人估算罗马军队数达十万人,但这个数字并不能被完全证实。