Republik Romawi yang berhasil bangkit, balik menyerang daerah yang dikuasai Kerajaan Kartago, yaitu Hispania dan Sisila. Republik Romawi juga mulai menyerang daerah Yunani-aliansi Kerajaan Kartago. Penyerbuan ke Hispania dipimpin oleh Scipio Africanus. Scipio berhasil menaklukan Hispania untuk Republik Romawi setelah melalui banyak perang, diantaranya Pertempuran Ilipa. Setelah Hispania, Romawi mulai menuju benua Afrika. Hannibal yang masih di Italia ditarik kembali oleh Kerajaan Kartago untuk melindungi dari serangan Romawi. Pasukan Romawi yang dipimpin oleh Scipio, dengan bantuan dari Numidia yang dipimpin oleh Masinissa dan pasukan Kartago yang dipimpin oleh Hannibal akhirnya berperang dalam sebuah pertempuran di Zama. Pasukan Kartago mengalami kekalahan telak dalam pertempuran ini. Kekaisaran Kartago kembali harus menandatangani perjanjian yang kali ini membuat Kerajaan Kartago menjadi benar-benar melemah. Hal ini dibuktikan dengan menghilangnya wilayah kekuasaan Kartago, sehingga hanya menyisakan kota Kartago. Isi perjanjian yang lain adalah tidak boleh melakukan peperangan dengan siapa saja dengan alasan apapun dan harus membayar upeti ke Republik Romawi sampai 50 tahun mendatang.