В 218 г. до н. э. Ганнибал, заключив союзные договоры с бойями и инсубрами, во главе почти 90-тысячного войска, усиленного 37 слонами, начал поход в Италию. В то время как римский сенат демонстрировал странное бездействие, карфагенская армия, преодолев упорное сопротивление местных племен, пересекла Северную Иберию, перешла через Пиренеи, с помощью оружия, золота или дипломатии благополучно миновала Южную Галлию и вышла к Западным Альпам. Консул Публий Корнелий Сципион не сумел остановить продвижение врага на дальних подступах к Северной Италии. Осенью 218 г. до н. э. отряды Ганнибала, за 15 дней пройдя альпийские теснины, беспрепятственно спустились в долину. Потери карфагенян были огромны: у Ганнибала осталось лишь 20 тыс. пехоты, 6 тыс. конницы и несколько слонов. Впрочем, вскоре он увеличил численность своей армии на 64 тыс. человек за счет галлов, восставших против Рима.
Зимой 218 г. до н. э. в двух ожесточенных сражениях у рек Тицин и Требия (современные Тичино и Треббия) Ганнибал разбил войска обоих консулов, Публия Корнелия Сципиона и Тиберия Семпрония Лонга, и стал повелителем Северной Италии. Он рассчитывал привлечь на свою сторону италиков, недовольных римским господством. Над Римом нависла серьезная угроза. Весной 217 г. до н. э. консул Гай Фламиний Непот, в недавнем прошлом победитель галлов и вождь римского плебса, планировал воспрепятствовать переходу противника через Апеннины; когда это не удалось, он, не дожидаясь второй консульской армии, бросился догонять обошедшего его неприятеля, однако в результате искусного маневра Ганнибала оказался в ловушке, попав в засаду на узкой дороге между горами и Тразименским озером. Римляне были разбиты, потеряв убитыми и пленными 30 тыс. человек; погиб и сам Фламиний (июнь 217 г. до н. э.). Овладев Этрурией, Ганнибал направился в Южную Италию.
В условиях крайней опасности в Риме был избран диктатор – старый и опытный Квинт Фабий Максим. Он избрал наиболее целесообразную в сложившейся ситуации тактику – избегая решительного сражения, следовать за неприятелем по пятам, изматывать его в мелких стычках, лишать продовольствия и фуража. Благодаря такому образу действий не было громких побед, но не было и поражений. Между тем Ганнибалу не удалось поднять италиков на восстание против Рима. Его положение постепенно ухудшалось. Однако осторожная тактика Фабия, не мешавшего опустошению Италии, возбуждала недовольство в широких слоях римского гражданства. Старого диктатора обвиняли в нерешительности, бездарности и даже трусости, называли «дядькой Ганнибала». За ним закрепилось нелестное прозвище Кунктатор («Медлитель
По истечении срока своих полномочий Фабий сложил власть и вернулся в Рим, а командование перешло к консулам 216 г. до н. э. Гаю Теренцию Варрону и Луцию Эмилию Павлу. В начале августа 216 г. до н. э. огромное римское войско (80 тыс. пехоты и 6 тыс. конницы) встретилось с армией Ганнибала (40 тыс. пехоты и 10 тыс. конницы) на равнине близ городка Канны в Апулии. Осторожный Эмилий Павел пытался удержать самонадеянного коллегу от битвы, однако Варрон настоял на своем и вывел войска из лагеря. Римская пехота выстроилась в огромный четырехугольник глубиной в 70 рядов, фланги прикрывала конница. Ганнибал построил свою пехоту полумесяцем, выгнутым навстречу противнику. В центре стояли 20 тысяч галлов и иберов – относительно слабые и ненадежные отряды. Отборные части ливийцев располагались по краям полумесяца. Впереди находились подразделения легкой пехоты, на флангах – отряды тяжелой галльско-иберийской и легкой нумидийской конницы.
Поначалу римляне, как и следовало ожидать, стали сильно теснить неприятельский центр, в результате чего полумесяц «прогнулся», охватив краями вражеский строй, и римская пехота мало-помалу втянулась в мешок. Одновременно многочисленная конница Ганнибала, рассеяв римскую, ударила римлянам в тыл. Скоро кольцо замкнулось, ряды римского войска смешались, и началось беспощадное избиение окруженных римлян. На поле боя остались мертвые тела 54 тысяч легионеров, 80 сенаторов и 25 высших командиров вместе с консулом Эмилием Павлом (его зятю, Сципиону Африканскому, было суждено по прошествии 14 лет разбить Ганнибала, а внуку, Сципиону Эмилиану – спустя еще 56 лет разрушить Карфаген). Варрон бежал, 18 тысяч римлян попали в плен. Карфагеняне потеряли всего 5,7 тыс. человек. Блестящая победа Ганнибала осталась на века классическим образцом военного искусства, а слово «Канны» стало нарицательным. Путь на Рим для Ганнибала был открыт.
Однако карфагенский полководец двинулся не на Рим, а в Кампанию. Тем временем в состав антиримской коалиции под эгидой Карфагена вошли македонский царь Филипп V и некоторые греческие города Сицилии во главе с Сиракузами.