Все эти обстоятельства делали неизбежным новое столкновение Рима с Карфагеном, вылившееся во Вторую Пуническую войну (218–201 гг. до н. э.). Несмотря на то, что римляне имели заранее подготовленный план ведения боевых действий, решительные действия Ганнибала чуть было не привели их к катастрофе. Неожиданно для римлян Ганнибал, пройдя через Пиренеи, совершил головокружительный переход через Альпы. В битве при Требии в северной Италии в 218 г. до н. э. консульские армии Публия Корнелия Сципиона и Тиберия Семпрония Лонга потерпели сокрушительное поражение.
Армия Ганнибала, усиленная восставшими против Рима галлами, на пути к Риму у Тразименского озера в 217 г. до н. э. нанесла еще одно поражение римлянам. Гай Фламиний, командовавший легионами, в этом бою погиб. Летом 216 г. до н. э. в местечке Канны произошло новое сражение. Благодаря удачному построению войск карфагеняне, армия которых по численности почти в два раза уступала римской, сумели ее окружить и полностью уничтожить. Это поражение вызвало панику в Риме. От Рима отпали некоторые союзники, в числе которых был город Капуя, Тарент и другие города юга Италии. К тому же царь Македонии Филипп V заключил с Ганнибалом военный союз против Рима.
Несмотря на эти внушительные победы, положение Ганнибала было значительно хуже, чем это казалось. Помощь от Карфагена не поступала, резервов не хватало. Союзник Ганнибала – царь Македонии Филипп V, занятый борьбой с коалицией, которую организовали против него римские дипломаты в самой Греции, испытывал большие трудности. Римляне же, изменив тактику борьбы с Ганнибалом, перешли от открытых столкновений к мелким стычкам и уходу от крупных сражений. Этим они изматывали противника.
Направив значительные силы в Сицилию, римляне в 211 г. до н. э. взяли Сиракузы, а через год овладели всем островом. Тогда же в их пользу изменилась ситуация в Испании. К командованию здесь пришел талантливый полководец Публий Корнелий Сципион, позже прозванный Африканским. После захвата опорной базы Ганнибала в Испании – Нового Карфагена – римлянам удалось овладеть в 206 г. до н. э. всей северо-западной частью Пиренейского полуострова.
Произошли значительные перемены в самой Италии, где римляне подвергли осаде изменившую им Капую. Попытки Ганнибала помочь осажденным оказались безуспешными. Поэтому он предпринял поход на Рим в надежде оттянуть римские легионы от Капуи. Однако его надежды не оправдались. К тому же Ганнибал понял, что взять Рим штурмом не удастся. Он вновь вернулся на юг Италии. Тем временем армия Публия Сципиона в 204 г. до н. э. высадилась в Африке. Карфагенский