Экспансия карфагенян беспокоила римлян, и они попытались заключить договор о разграничении сфер влияния, но неудачно. В 221 г. до н. э. карфагенский полководец Ганнибал взял союзный римлянам город Сагунт, разрушил его и стал готовиться к знаменитому маршу на Рим. Официально II Пуническая война началась в 218 г. до н. э.
Инициатива в начале войны полностью принадлежала Ганнибалу. Он продвигался в северо-восточном направлении, почти не встречая сопротивления, через реку Ибер (соврем. Эбро), Пиренеи, реку Родан (Рону), Альпы. Воины чаще гибли не в сражениях, а от тягот опасных переходов. Наконец через пять месяцев, потеряв едва ли не половину армии, Ганнибал вышел в долину Пада (По). Посланные ему навстречу римские войска были разбиты африканским полководцем в сражениях при Тицине и Требии (218 г. до н. э.), а затем и у Тразименского озера (217 г. до н. э.). Ганнибал оказался у ворот Рима, практически оставшегося беззащитным. Карфагенянин стремился привлечь на свою сторону галлов и другие народности Италии, обещая им завидную долю в добыче.
Римляне решили назначить диктатора, которым стал Квинт Фабий, прозванный Кунктатором (Медлительным) из-за выбранной им тактики. Сознавая как моральное, так и численное превосходство армии Ганнибала, Фабий избегал открытого сражения. Он пытался измотать противника длительными переходами в зимнее время и отсутствием в достаточном количестве продовольствия. Имея за плечами вражескую армию, Ганнибал не решился идти на Рим, а безуспешно гонялся за Фабием по Южной Италии. Однако медлительность Фабия вызвала недовольство среди римлян, многие из которых владели плодородными землями на юге Апеннинского полуострова. Диктатор был смещен, а военное руководство перешло к новому консулу Теренцию Варрону, который незамедлительно начал готовиться к генеральному сражению. Оно состоялось в начале 216 г. до н. э. при Каннах и окончилось блестящей победой Ганнибала, став на многие столетия примером военного искусства. По непонятной причине Ганнибал не решился идти на Рим, а терял время в переговорах с самнитской верхушкой, пытаясь привлечь недавно воевавшую с Римом народность на свою сторону.
Римские войска между тем успешно воевали в Испании, Македонии, на Сицилии. В 213 г. до н. э. они осадили Сиракузы, в 212 г. до н. э. – Капую, которую Ганнибал сделал своей резиденцией в Италии. Оба города были взяты, причем при взятии Сиракуз погиб великий греческий ученый Архимед, находившийся на службе у сиракузского тирана. По существу исход войны был предрешен. Однако карфагеняне еще дважды вторгались в Италию (207 и 205 гг. до н. э.), но оба раза неудачно.
Ганнибал оказался запертым на южной оконечности Апеннинского полуострова, а римские легионы тем временем одерживали важные победы в Испании. В 206 г. до н. э. Публий Сципион взял последнее укрепление карфагенян Гадес (соврем. Кадис). В следующем году Сципион был избран консулом и назначен правителем Сицилии с правом перенесения военных действий в Африку, где римляне не замедлили высадиться. В 202 г. до н. э. Сципион разбил в битве при Заме вернувшегося на родину Ганнибала, а в следующем году был заключен мир, согласно которому Карфаген терял все свои владения за пределами Африки, весь свой флот и обязался выплачивать в течение 50 лет весьма значительную контрибуцию. Публий Сципион получил почетное прозвище Африканский.
Рим стал крупнейшей военной и политической силой на Средиземном море. Римляне ведут войны в Македонии, где в 197 г. наносят сокрушительное поражение царю Филиппу V в битве при Киноскефалах, затем овладевают Грецией, где разрушают Коринф. В середине II в. до н. э. был добит Карфаген (III Пуническая война велась в 149–146 гг. до н. э.). Тогда же Македония стала римской провинцией.
Однако военные победы, принесшие Риму обширные территории и неизмеримые богатства, не находили адекватного отражения в жизни простых римлян. Награбленными богатствами пользовалось ничтожное меньшинство. К тому же постоянно рос произвол должностных лиц. Почти непрерывные военные кампании отражались на динамике населения. Дошло до того, что в 151 г. до н. э. возникли не имевшие аналогий в истории города трудности с воинским набором. Римляне «призывного возраста» под любым предлогом отказывались от воинской службы; даже должности командиров оставались незанятыми. Сильно страдало от войн крестьянство, составлявшее основу римских легионов.