汉尼拔在意大利转战16载,取得了(特别是在初期)巨大的战果,赢得了诸如特雷比亚、特拉西梅诺湖、坎尼等会战的胜利。然而,他在征战中并没有得到迦太基的大力支持。公元前207年,他的弟弟哈斯德鲁巴率军增援,结果却在意大利北部的梅陶罗河畔战败而死。事实上汉尼拔在被召回迦太基之前已在意大利南部陷入困境。
与此同时,迦太基人还在其他战场作战,其中最重要的战场是西班牙。战争爆发后不久,罗马派西庇阿两兄弟(巴布利阿斯与尼阿斯,他们分别是阿非利加努斯的父亲和叔叔)前往西班牙摧毁迦太基的实力,并切断汉尼拔的补给线。起初,他们取得了很大的胜利,但当哈斯德鲁巴和他的弟弟马戈以及另一个哈斯德鲁巴(吉斯戈的儿子)统帅的3个迦太基军团增援伊比利亚半岛后,西庇阿两兄弟随即遭到失败,并在战斗中阵亡。这场灾难后不久,罗马元老院作出了一个大胆而理智的决定,即派遣24岁的普布利乌斯·科尔内利乌斯·西庇阿到西班牙指挥那里的军队。西庇阿随后在那里取得了一系列引人注目的战绩。