Этот план стал претворяться в жизнь. Войско Ганнибала высадилось в Испании и стало покорять местные племена, продвигаясь вдоль берега Средиземного моря. Тогда римляне разорвали мир и объявили Карфагену войну. Она вошла в историю под названием второй Пунической (218–201 гг. до н. э.).
Чтобы проникнуть в Италию, Ганнибалу нужно было одолеть высоченные вершины Альп. Уже сам по себе переход через Альпы может считаться подвигом. Но Ганнибалу удалось провести по заснеженным тропам не только пехоту, но и конницу и даже боевых слонов. Хотя римляне знали о продвижении карфагенского войска, успешный переход Ганнибала через Альпы и внезапное появление его в Северной Италии явились для них полной неожиданностью. В первом же сражении римская армия потерпела поражение. Не мешкая, Ганнибал двинулся вглубь страны. Римляне спешно собрали новую армию и направили ее навстречу карфагенянам. У Тразименского озера Ганнибал устроил засаду, внезапно окружил беспечно шедших римлян и истребил почти 30 тысяч солдат. Дело для Рима принимало нешуточный оборот. Со дня на день ожидалось появление врагов у ворот Вечного города. На войну с Ганнибалом были посланы оба консула, собравшие еще более многочисленное войско.
Прежде чем штурмовать Рим, Ганнибал рассчитывал привлечь на свою сторону римских союзников — зависимые от Рима италийские племена. С этой целью он вступил в Южную Италию. Туда консулы и повели свою армию. Близ города Канны в 216 г. до н. э. произошло большое сражение.
У римлян было 80 тысяч пехоты и 6 тысяч конницы, у Ганнибала — 40 тысяч пехоты и 10 тысяч конницы. Но, имея численное превосходство, римляне еще не осознавали, с каким полководческим гением они столкнулись. Ганнибал построил свою армию серпом, выгнутым вперед, причем в середине этого серпа встали самые слабые воины, а по краям — сильные отряды и многочисленная африканская конница. После того как римская пехота всей своей массой навалились на противника, строй карфагенян превратился в серп выпуклой стороной назад. В то же время африканская конница ударила с флангов, разбила слабую римскую конницу и окружила пехоту со всех сторон. Началось поголовное истребление окруженных. Только убитыми римляне потеряли 48 тысяч человек, многие тысячи попали в плен. Погиб один из консулов.
При известии о страшном поражении Рим охватила паника. Если бы Ганнибал немедленно двинулся на город, он мог бы занять его без особого труда. Но он еще медлил, придерживаясь прежнего плана войны: перед тем, как идти на Рим, надо лишить его италийских союзников. Однако даже после разгрома при Каннах далеко не все союзники изменили римлянам. Большинство из них остались им верны. И все же Ганнибал теперь безраздельно хозяйничал в Италии. От римлян потребовалось чрезвычайное напряжение сил и средств, чтобы исправить свое катастрофическое положение. В воинский строй были призваны все граждане, способные носить оружие, а также рабы. Избегая вступать в открытое сражение с Ганнибалом, римляне избрали очень эффективную тактику нанесения мелких ударов, которыми они постоянно тревожили противника, не давая ему передышки. Война приняла затяжной характер и велась теперь на истощение. Время играло против карфагенян. С каждым годом их разноплеменное войско, набранное из наемников, теряло прежнюю отвагу.
Тем временем римляне послали войска в Испанию и на остров Сицилию. В этих походах отличился молодой полководец Сципион. Когда эти провинции были завоеваны, именно ему было поручено командовать армией, которая высадилась в Африке. Увидев под своими стенами римлян, власти Карфагена немедленно отозвали Ганнибала из Италии. Не потерпев ни одного поражения, он должен был оставить Апеннинский полуостров. В 202 г. до н. э. в Африке произошло решительное сражение, определившее исход войны. Сципион учел уроки битвы при Каннах. На сей раз римская конница оказалась больше и сильнее конницы карфагенян.
Войско Ганнибала было разгромлено, и Сципион продиктовал условия мира. Карфаген лишился большинства своих владений, выплатил Риму огромную контрибуцию, а также отдал ему свой военный флот. Могущество Карфагена было сломлено. Сам Ганнибал вскоре покинул родной город и бежал на Восток.