Kendati demikian, Hanibal tetap saja merajalela di Italia sampai 16 tahun lamanya. Setelah Hannibal diperkirakan sudah kehabisan perbekalan, orang Romawi pun mengeluarkan jagoan mereka, Publius Cornelius Scipio. Senapati Romawi ini berhasil mengalahkan adik Hannibal, Hasdrubal Barca, di daerah yang kini menjadi wilayah negara Spanyol, dengan maksud meronggong daerah sekitaran ibu kota musuh yang tidak dijaga sehingga Hannibal terpaksa harus pulang untuk mempertahankan kota Kartago. Perang Punik II berakhir dengan kemenangan mutlak Romawi dalam Pertempuran Zama pada bulan Oktober 202 SM di Afrika, yang membuat Publius Cornelius Scipio mendapatkan agnomen "Africanus". Sekalipun banyak berkorban, Roma juga mendapatkan banyak keuntungan, yakni kedaulatan atas Hispania berkat aksi penaklukan Publius Cornelius Scipio, dan kedaulatan atas Sirakusa, daerah kekuasaan terakhir bangsa Yunani di Pulau Sisilia, berkat aksi penaklukan Marcus Claudius Marcellus.