После победы при Тунете пунийские войска были переброшены в Сицилию. Однако римляне нанесли им поражение при Палермо в 254 году и еще более тяжелое поражение под стенами этого города три года спустя, когда пунийцы потеряли 120 боевых слонов. Под контролем Карфагена остались на Сицилии только порты Дрепанум и Лилибей, но и те были осаждены римлянами. В гавани Дрепанума произошло большое сражение между флотами консула Публия Клавдия и карфагенского флотоводца Атарбы. Победа карфагенян была полной. Они, пользуясь большей маневренностью своих судов и лучшей подготовкой экипажей, окружили римские суда, из 210 уничтожив 80 и захватив 100.
В 247 году командование карфагенскими войсками в Сицилии принял талантливый полководец Гамилькар Барка. Он, пользуясь господством на море, стал нападать на италийское побережье и захватывать пленных из числа жителей союзных Риму городов, чтобы потом обменять их на находящихся в руках римлян карфагенских пленников. Только в 242 году римляне смогли построить новый флот в 200 кораблей и нанести тяжелое поражение карфагенскому флоту в битве у Эготских островов. Карфагеняне потеряли 120 кораблей. После этого в 241 году был подписан мир, отдавший Риму Сицилию и ряд островов.
После окончания Первой Пунической войны Карфаген главные силы бросил на завоевание Пиренейского полуострова. В 228 году Гамилькар был убит.
В 221 году после гибели Гасдрубала, зарезанного слугой-ибером, карфагенскую армию в Испании возглавил Ганнибал. В 218 году он захватил союзный римлянам Сагунт. Это послужило поводом для объявления Римом войны Карфагену.
Ганнибал собирался вторгнуться на Апеннинский полуостров через Альпы. 16-тысячная армия была оставлена для защиты Карфагена, столько же солдат находились в Испании. Сам же Ганнибал с 92-тысячной армией двинулся к Альпам. Он переправился через Эбро. На северном берегу этой реки Ганнибал оставил 11 тысяч солдат под командованием Ганнона, а сам с большей частью армии перешел Пиренеи. Галльские племена присоединились к пунийцам. Ганнибал переправился через Рону и глубокой осенью начал переход через покрытые снегом Альпы. Преодолев их, карфагенская армия спустилась в долину реки По и заняла Турин. 6-месячный поход стоил Ганнибалу более половины армии. Несмотря на галльское пополнение, она насчитывала теперь около 40 тысяч пехоты и 6 тысяч кавалерии. По утверждению Тита Ливия, 36 тысяч карфагенских воинов не вынесло тягот похода, став жертвами главным образом голода, холода и болезней и, в меньшей степени, – стычек с иберскими и галльскими племенами. Зато Ганнибал оказался в Италии совершенно неожиданно для римлян, чьи силы оказались разбросаны по разным театрам военных действий.
Переправа армии Ганнибала через реку Рону. Статуэтка V в. до н. э. Бронза
Когда командующий римской армией в Испании консул Корнелий Сципион, бросившись вдогонку за Ганнибалом, подошел к Роне, то карфагенское войско уже оторвалось от него на три дневных перехода и подходило к Альпам. Тогда Сципион часть войск вернул в Италию, а во главе остальных перешел в Италию вдоль берега моря на соединение с армией консула Семприония Лонга, прибывшей из Италии. В декабре 218 года у реки Тичино Сципион столкнулся с Ганнибалом, потерпел поражение и был ранен. Однако ему удалось спасти от уничтожения основную часть своих легионов и соединиться у города Плаценции с войсками Лонга. Оба консула заняли хорошо укрепленную позицию на восточном берегу реки Треббии и поджидали карфагенян. У них было 32 тысячи пехоты и 4 тысячи конницы против 30 тысяч пехоты и 10 тысяч конницы у Ганнибала. Карфагенский полководец стремился вызвать римлян на бой. Пунийская конница перешла Треббию и двинулась к римскому лагерю. В засадный отряд, расположившийся за ручьем за правым флангом карфагенского войска, Ганнибал отрядил «Священную дружину» – отборную кавалерийскую часть, сформированную из представителей наиболее знатных семей Карфагена.
Когда продрогшие легионы построили боевой порядок на равнине, Ганнибал бросил против них опытных балеарских стрелков, которым Лонг противопоставил новобранцев-велитов. Последние не выдержали атаки и быстро отступили за линию тяжеловооруженных воинов. Те, в свою очередь, прорвали фронт галльской пехоты, составлявшей центр карфагенской армии. Фланги же римлян подверглись атаке нумидийской конницы и засадного отряда и были разбиты. Только 10 тысяч римлян в центре смогли пробиться сквозь галльскую пехоту и отступить, сохранив боевой порядок. Остальные погибли, были пленены или разбежались. Пленных из числа римских союзников Ганнибал отпустил без выкупа, надеясь привлечь их на свою сторону для борьбы с Римом.
Летом 216 года карфагеняне захватили продовольственный склад римлян в укреплении вблизи города Канны. Ганнибал расположился здесь лагерем, рассчитывая, что противник попытается отбить склад. Римские легионы, действительно, двинулись к Каннам и остановились в 2 км от города. 1 августа консул Гай Терренций Варрон вывел войска в поле. Ганнибал еще на марше атаковал римлян конницей и пращниками. Однако Варрон успел развернуть тяжеловооруженных воинов, которые с помощью велитов отразили атаку. На следующий день командование принял консул Луций Эмилий Павел. Две трети армии он расположил на левом берегу реки Ауфид, а одну треть – на правом берегу, в 2 км от основного лагеря. Ганнибал же всю свою армию развернул против главных сил римлян. С утра 2 августа римские легионы из обоих лагерей выстроились в боевой порядок на левом берегу Ауфида. На левом фланге, примыкая к реке, стояла римская конница, на правом – конница союзников. Составлявшая центр пехота имела более глубокий строй, чем обычно. Впереди стояла легкая союзная пехота. Ганнибал построил боевой порядок точно так же: с флангов – кавалерию, в центре – тяжеловооруженную пехоту, а перед ней – пращников и стрелков из лука. В середину своей фаланги он поставил менее опытных галлов и иберов, по краям – закаленных в боях ливийцев.
Против 4-тысячной конницы римских союзников Ганнибал бросил 2 тысячи нумидийской кавалерии, а вот против 2 тысяч римских конников сосредоточил 8 тысяч человек тяжелой карфагенской («Священная дружина»), ливийской и легкой иберской кавалерии. Карфагенская конница рассеяла римских всадников, а потом ударила с тыла по коннице римских союзников. Между тем римская пехота потеснила галлов в центре и попала под удар двух сильнейших ливийских крыльев. Римские легионы оказались в кольце. Вот как описывает финал битвы Тит Ливий: «…Когда римлян оставалось уже немного и они изнемогали от усталости и ран, тогда они были обращены в бегство, затем все рассеялись и, кто мог, старались найти своих лошадей, чтобы бежать… Римляне бросились со всех сторон врассыпную. 7 тысяч человек прибежало в меньший лагерь, 10 тысяч – в больший, а почти 2 тысячи – в самую деревню Канны; эти последние немедленно были окружены Карфалоном и его всадниками, так как деревня Канны не была защищена никакими укреплениями. Другой консул (Варрон. – Авт.), случайно ли или намеренно, не присоединился ни к одному отряду беглецов, но приблизительно с 50 всадниками бежал в Венузию. Говорят, что было перебито 45 тысяч 500 пехотинцев, 2 тысячи 700 всадников и почти столько же граждан, сколько союзников…»