皮洛斯走后,罗马人吞食掉了整个意大利南部的领土,而西西里岛则全归迦太基人所有。这显然让志在地中海的罗马人感到压力。
这对曾经结盟对抗皮洛斯的盟友,只需要一个理由,就可以立马打起来。
很快,这个理由来了——公元前289年,西西里岛上一群雇佣军占据墨西拿。叙拉古国王于公元前270年出兵征讨,请求迦太基支援。被打败的雇佣军向罗马求援,罗马作出了与迦太基开战的决定。
公元前264年,第一次布匿战争开始——因罗马人称腓尼基人为布匿而得名。南渡的罗马军队很快击败叙拉古军队,并随即拿下迦太基军队占领的墨西拿城,然后继续南下,出现在叙拉古城下,与叙拉古国王签订了一纸为期15年的同盟条约。
征服叙拉古后,罗马西进,与迦太基人于西西里南岸恶斗半年,在公元前262年,以伤亡3万人的惨重代价,基本上将西西里岛全部拿下。而迦太基人干脆将残余军队撤离西西里岛,利用强大的海军,封锁了西西里岛通往意大利半岛的海峡。
称霸于意大利半岛的罗马人意识到,想要征服迦太基这个海上霸主,没有一支给力的海军是完全不可能的。此时迦太基是罗马和希腊的共同敌人,而希腊人在战舰技术上是与迦太基人旗鼓相当的。在希腊人的援助下,罗马人很快便造出了100多只战船,并且在牛刀小试中打败了迦太基人。公元前259年,罗马舰队进攻撒丁岛,迦太基再一次战败。三年后,双方在西西里南部决战,罗马人击沉、缴获90只迦太基战船。此战后,罗马人在海上已经不再畏惧迦太基海军。
信心膨胀的罗马人,派330只战船及步兵4万人,杀入位于北非的迦太基本土,但这次渡海登陆战在迦太基的持续打击下惨败,远征军全军覆没。三个月后,罗马人卷土重来,重新打造了220只战船,于公元前251年打败了迦太基的西西里大军,可惜撤退时遇风暴,又是全军覆没。
到公元前242年,罗马的财政已然十分困难,但还是挤出钱造了200只战船。次年,罗马舰队击溃迦太基海军。公元前240年,双方签订和约,迦太基赔款、割让西西里岛,第一次布匿战争结束。
公元前238年,撒丁岛内乱,起义军向罗马求援,罗马迅速派出军队占领撒丁岛。而次年,迦太基开始向西班牙南部扩张,迅速占领了西班牙南部和东部的大部,将当地彪悍的土著组织成了一支强大的军队。并在西班牙的东南部沿海建立了新迦太基城,著名的汉尼拔于公元前221年在这里登上统帅宝座,时年26岁。
此时,在第一次布匿战争中失利的迦太基人,借着西班牙半岛上丰富的金矿,不但轻松地偿还了给罗马人的战争赔款,并且实力也迅速地强大起来。
年轻的汉尼拔征服了埃布罗河以南——再往北,就要接触到高卢人以及罗马人的势力范围了。
罗马人压力很大,遂与西班牙城市萨贡托结盟,宣布此城为罗马保护地。
而这明显违反了新迦太基前任统帅在公元前226年和罗马的约定——年轻气盛的汉尼拔没那么好惹,立马出兵将此城围困。城内派人向罗马求救,罗马差使者前往,希望汉尼拔能停止攻势。但汉尼拔不予理睬,8个月后城破。
罗马人大怒,向迦太基人发出通牒,要求交出汉尼拔受审。
此时的迦太基早已不是20年前战败的那个迦太基了,虽然海军实力严重受挫,但在这20年之间,迦太基人靠着西班牙半岛发家致富奔了小康,又有汉尼拔领着一帮彪悍勇猛的西班牙人撑场,腰杆子挺直了许多。罗马人的恐吓宣告无效,双方不欢而散,第二次布匿战争爆发。
公元前218年,罗马军队兵分两路,一路从西西里岛出发,从海路杀奔迦太基在北非的老窝;一路则从陆上出发,先向北再向西南,借道马赛利亚,杀入西班牙半岛。
迦太基虽然腰杆硬了,但由于第一次布匿战争后,罗马人限制了他们发展海军,因此汉尼拔只有从陆军着手——他的决定是往北打,联合高卢人。
公元前218年4月,汉尼拔令其弟留守新迦太基,自己领着步兵9万人、骑兵12万人,挺进阿尔卑斯山。
罗马人原本的打算,是在高卢阻击北上的汉尼拔。而汉尼拔行进的路线避开了罗马人,这让在高卢的罗马人着了急——立马兵分两路,一路继续杀向西班牙半岛,另一路从海上跑回罗马报告。
汉尼拔所率的大军在远征中损耗巨大,翻越阿尔卑斯山后,仅余步兵2万人、骑兵6000人。但刚被罗马人征服的高卢人对汉尼拔的到来很是高兴,为其提供了兵力及装备。
得到消息的罗马人,令正要从西西里杀向北非迦太基老窝的军队返回罗马,打算在意大利半岛上解决远道而来的汉尼拔。