第二次布匿战争中,西班牙战事成为关键战场。老西庇阿兄弟在与迦太基将领哈斯德鲁巴的对抗中阵亡,其子大西庇阿接任后逐步掌握主动权,攻占新迦太基城,并在巴埃库拉战役中击败哈斯德鲁巴。哈斯德鲁巴的阿尔卑斯行军意图支援汉尼拔,但因罗马阻击失败,西班牙最终落入罗马控制。
汉尼拔在意大利征战十余年,虽未获决定性胜利,但持续牵制罗马。罗马通过收复南部盟邦逐步压缩其活动范围。哈斯德鲁巴率军北上会合的计划因罗马截获情报而失败,梅陶罗河战役中迦太基全军覆没,汉尼拔孤立无援,退守意大利北部。
大西庇阿提出非洲远征计划,主张攻击迦太基本土。尽管元老院保守派反对,他仍组建西西里军团并渡海登陆北非。通过乌提卡战役火攻战术,大西庇阿重创迦太基与努米底亚联军,迫使迦太基求和谈判并召回汉尼拔。
公元前202年,大西庇阿与汉尼拔在扎马会战展开决战。汉尼拔依赖战象冲锋与步兵三线阵型,但大西庇阿通过预留战象通道与骑兵包抄战术瓦解其攻势。努米底亚骑兵支援罗马取得决定性优势,迦太基溃败后被迫接受苛刻和约。
第二次布匿战争以迦太基求和告终,其丧失海外领地并支付巨额赔款。汉尼拔战后转向政治,而罗马确立地中海霸权。扎马会战战术部署与罗马战略反攻计划成为战争转折点,终结了汉尼拔意大利征战的传奇。