迦太基人对这次失败的反应是召唤汉尼拔和马戈从意大利返回,并向西庇阿的舰队发起进攻,以切断他们的补给线。
西庇阿被迫在乌提卡附近进行海战,但成功避免了灾难,仅损失了约六十艘运输船。
随后进行了另一轮和平谈判,迦太基人最终同意放弃在地中海及其他地区的所有领土要求,限制在非洲的扩张权利,承认马西尼萨的王国,放弃除二十艘以外的所有战舰,并支付战争赔偿。
然而,在谈判期间,迦太基人因饥饿袭击了一支罗马粮食车队,导致抗议和使节的交换。
在进一步试图将他从指挥位置上移除的过程中——公元前203年的一位执政官格涅乌斯·塞尔维利乌斯·凯皮奥(Gnaeus Servilius Caepio)试图取代西庇阿,以声称自己为对迦太基的最后一击立功。
公元前202年的执政官们出于同样的原因渴望获得非洲指挥权——西庇阿在公元前202年的与汉尼拔的谈判中拒绝了和平条款。
在马西尼萨的努米底亚骑兵的支持下,随后进行了扎马战役(Battle of Zama),罗马军队获胜,迦太基再次请求和平。
在新的一年,公元前201年,西庇阿留在非洲以完成谈判,谈判结果是迦太基的领土维持在战前状态,迦太基需要将所有被掳物资和人质归还给罗马,除了十艘三桅战舰外,所有迦太基舰艇需解除武装,并且迦太基在进行任何战争前需要请求罗马的许可。
马西尼萨在努米底亚的领土将被确认。
而战争赔偿为一万塔兰特(talents),将在接下来的五十年内支付。
尽管公元前201年的执政官格涅乌斯·科尼利乌斯·伦图卢斯(Gnaeus Cornelius Lentulus)试图反对这一和平,以便继续战争取而代之,但和平条款在罗马的集会上得以批准,战争最终结束。
---
在凯旋归来时,西庇阿为战胜汉尼拔、迦太基人和西法克斯举行了凯旋仪式。
在那次凯旋中,他取了阿非利加努斯(Africanus)的称号,意为“非洲的征服者”,以纪念他的胜利。
此时,尽管西庇阿年仅三十出头,但他的事业已经远远超越了同辈。
归来时,他将约12.3万磅的银子存入罗马国库,并为每个士兵分发了400阿斯(asses)。
他在平民中的受欢迎程度也令人惊叹——西庇阿的传奇故事,后来甚至描绘他为朱庇特的儿子,预示着他巨大的政治成功。