第二次布匿战争是古罗马和迦太基之间三次布匿战争中最负盛名的一场战争,作战16年,前218年-前201年。迦太基战败求和,接受了十分苛刻的条件,失去一切海外属土,赔款1万塔兰特,战舰除留10艘外全被凿毁。从此,迦太基的海上霸主地位彻底破产,罗马成了西地中海的霸主。
伊比利亚战役
第一次布匿战争结束后不久,迦太基就着手准备新的战争。汉尼拔‧巴卡详细制订的战略计划是,在公元前237年—前219年征服的伊比利亚(西班牙)境内建立一支强大的军队,越过阿尔卑斯山,从北面对罗马实施突然的猛烈突击。公元前219年,汉尼拔率迦太基军队包围与罗马结盟的西班牙城市萨贡托(Saguntum),围困8个月,占领该城。
公元前218年秋,罗马人在西班牙首战获胜,老西庇阿的兄弟格涅乌斯·西庇阿在西萨战役中击败并活捉了主将汉诺(汉尼拔的外甥),随后,哈斯德鲁巴·巴卡及其副将希米尔科也在埃布罗河战役中被格涅乌斯·西庇阿打败。
但此后,罗马军队遭到惨败,罗马在西班牙的军队被全歼,两名统帅都在战斗中阵亡。这场灾难后不久,罗马元老院作出了一个决定,派遣24岁的西庇阿率领罗马军队远征西班牙。
西庇阿随后在那里取得了一系列辉煌的战绩,公元前209年攻占了迦太基人在伊比利亚的主要基地之一新迦太基城(新迦太基之战),前208年在巴埃库拉战役击败汉尼拔之弟哈斯德鲁巴·巴卡,又于前206年的伊利帕战役对西班牙的迦太基军队取得了决定性胜利。
意大利战役
罗马元老院决定派遣执政官格奈乌斯·科尔内利乌斯·西庇阿率军前往伊比利亚,就地击溃迦太基军队并派兵在阿非利加登陆,以期达到对迦太基本土展开军事行动之目的。
但汉尼拔先发制敌,于公元前218年4月,率领9万名步兵,1.2万名骑兵和37只战象,越过了阿尔卑斯山脉,开始了对意大利的远征。迦太基军队在五个半月的时间内行军1600余公里,沿途克服了险恶的天然障碍和许多部落的抵抗。
出敌不意,在提契诺河(参见提基努斯河战役)和特雷比亚河(意大利北部)战役(参见特雷比亚河战役)中击溃普布利乌斯·科尔内利乌斯·西庇阿的军队。这些胜利的取得,使汉尼拔巩固了后方和与罗马为敌的高卢诸部落订立了同盟。
公元前217年春,迦太基军队侵入意大利中部,在特拉西梅诺湖畔的狭窄隘口巧妙设伏,歼灭盖约·弗拉米尼统率的罗马军队(参见特拉西美诺湖战役)。公元前216年,在坎尼会战中罗马军队(约7万人)被汉尼拔军队(5万人)包围、全歼。这次胜利后,意大利的很多部落和城市臣服迦太基。
公元前216年秋,讨伐山南高卢的老将卢基乌斯·波斯图米乌斯·阿尔比努斯在席尔瓦利塔娜战役中惨败并被杀。
公元前215年,迦太基将领秃头的哈斯德鲁巴率军支援撒丁人汉普西科拉发起的反罗马起义,战败于德西马努战役,汉普西科拉战死,秃头的哈斯德鲁巴被俘。
公元前216-214年,汉尼拔三次进攻诺拉城,均被马塞拉斯击退(诺拉之战)。
公元前213年,汉尼拔攻克了南意大利城市塔兰托(塔兰托袭击战),又趁胜控制了除利吉姆外的全部大希腊区城市。
迦太基
从公元前212年起,主动权转到罗马人手中。他们采取积极的行动夺回原在意大利、西西里、伊利里亚和马其顿的失地。公元前212年,马塞拉斯在叙拉古战役中攻破了背叛罗马的叙拉古。
公元前211年,罗马执政官执政官普尔凯尔和弗拉克斯又攻克了投靠汉尼拔的卡普阿(卡普阿之战)。哈斯德鲁巴企图从伊比利亚驰援汉尼拔,但因在公元前207年的梅陶罗河战役中被击溃,而告失败。反罗马同盟因罗马人屡屡获胜而日趋瓦解。
公元前204年,年仅33岁的大西庇阿率罗马军队在迦太基附近登陆,迦太基急忙召汉尼拔回军救援。公元前202年的扎马战役中,汉尼拔仍按常规列队和战法,西庇阿则不循常规,他把一、二、三线各部队重叠配置,中间留出空道,以便让战象通过。
交战开始以后,当汉尼拔军的战象冲到西庇阿军前沿时,西庇阿的一线部队突然鼓角齐鸣,喊声大作,汉尼拔军的战象受到惊吓,有的停滞不前,有的转身向自己的战阵冲去,还有的受罗马军的投枪击伤后逃跑。
西庇阿抓住这一有利时机,命令骑兵迂回包抄,同时将3线兵力集中起来,向汉尼拔军正面猛攻,一鼓作气,终于取得了胜利。汉尼拔军战死约2万人,汉尼拔落荒而逃。这是汉尼拔第一次也是最后一次吃了败仗。迦太基人战败。
结果
迦太基失败。公元前201年,迦太基人同罗马人签订了条款苛刻的和约。根据和约规定,迦太基撤离西班牙、地中海诸岛,迦太基人失去阿非利加以外的一切领地,并完全解除武装、自卫队不得赴海外作战,将整个舰队交给罗马,且任何自卫战争必须先和罗马协商等,并偿付巨额战争赔款,迦太基失去所有伊比利亚半岛的领土,海军解散,只能有10艘防海盗的船。同时选100名14岁以上30岁以下男子赴罗马充当人质。