Вторая Пуническая война была преимущественно сухопутной, но морские силы по-прежнему играли значительную роль в ведении боевых действий. Риму приходилось постоянно оказывать поддержку своим войскам в Испании, посылая туда подкрепления, и готовить переброску легионов в Африку. Римский флот успешно справлялся с этими задачами, помогая противостоять неприятелю на суше. Лишенный подкреплений из Карфагена и теряя италийских союзников, Ганнибал под давлением оппозиции в карфагенском совете вынужден был без единого поражения эвакуировать свои войска из Италии.
В 204 г. до н. э. Сципион высадился в Африке и в 202 г. до н. э. нанес окончательное поражение Ганнибалу в битве при Заме. Воспоминание об этом событии сохранилось в имени Сципиона: современники стали называть его Африканским. Победа при Заме часто представляется доказательством превосходства полководческого таланта Сципиона над талантом Ганнибала. Однако к этому времени Ганнибал значительно уступал римлянам в численности и боеспособности своей пехоты и кавалерии, а тактические приемы Сципиона во многом повторяли тактику Ганнибала при Каннах. По условиям нового мирного договора Карфаген лишался флота и всех своих заморских владений.
Главная причина победы Рима заключается прежде всего в эффективности его военной организации. Римские граждане находились на военной службе с 17 до 46 лет, а италийские союзники исправно поставляли воинские контингенты в римскую армию. Такая система давала Риму возможность даже после тяжелых поражений быстро восстанавливать численный состав легионов. Граждане Карфагена не были обязаны служить за пределами своего государства, поэтому основу его армии составляли наемники. Они превосходили римских воинов своим профессионализмом, но восполнять потери в такой армии было трудно.
Другая причина кроется в силе и гибкости римской политической системы. Римские полководцы всегда единодушно выступали за продолжение войны, а римский сенат, который отвечал за общую стратегию, всецело поддерживал их, несмотря на частные разногласия. Ежегодная смена консульских пар понижала эффективность командования римскими легионами, но это препятствие римляне смогли преодолеть продлением консульских полномочий своим полководцам (проконсулам). Стремление к сохранению командных постов заставляло их проявлять большую инициативу. На этом фоне Ганнибалу недоставало поддержки у себя на родине, что порождалось существованием оппозиции ему среди карфагенской знати.
Последствием двух Пунических войн было не только распространение власти Рима на новые территории. Войны сказались на состоянии всего римского государства. Политическим институтам, которые удовлетворяли потребностям римского гражданского коллектива, предстояло приспособиться к требованиям растущей державы. Продление консульских полномочий за пределами Италии (проконсульство) открывало эпоху профессиональных полководцев, а продолжительные войны требовали замены гражданского ополчения, набиравшегося от случая к случаю, постоянной армией. Вызванный войной отток из Италии рабочей силы плохо сказался на состоянии ее сельского хозяйства, что таило в себе причины будущего аграрного кризиса. Осложнились отношения Рима с италийскими союзниками. Переход некоторых из них на сторону неприятеля обозначил недовольство проводимой по отношению к ним политикой.
Римская правящая верхушка также начала осознавать необходимость перестройки существующей политической системы. Так, в ходе Второй Пунической войны закладывались «мины» будущих внутриполитических конфликтов. Однако их история начинается с противостояния двух крупных политических деятелей первой половины II в. до н. э. — Марка Порция Катона (Старшего) и победителя Ганнибала Публия Корнелия Сципиона Африканского. Катон был для римлян «новым человеком», так как не имел знатных предков — обладателей «империя». Лишь благодаря своим талантам и поддержке влиятельных друзей ему удалось достичь в Риме вершин политической карьеры и стать цензором. Высокое положение позволило Катону начать преследование своих личных врагов-аристократов.