В конце 218 года у рек Тицина и Требии, притоков реки По, произошли первые столкновения с римлянами. В обоих сражениях римляне потерпели поражение. Вся Цизальпинская Галлия оказалась Под контролем Ганнибала. Весной следующего года Ганнибал двинул свое войско в Северную Этрурию.
Узнав о маневре Ганнибала, Фламиний немедленно бросил все свои силы на преследование карфагенян. На рассвете римская армия без предварительной разведки стала втягиваться в узкое дефиле, образуемое северным берегом Тразименского озера и окрестными холмами. Здесь Ганнибалом была подготовлена засада. Когда основные силы римлян втянулись и долину, со всех холмов по условному знаку Ганнибала начали спускаться карфагенские отряды.
Развернувшийся бой скорее походил на массовое избиение римлян, нежели на обычное сражение. В узкой долине римляне не смогли развернуть своих боевых порядков и, окруженные неприятелем, метались в растерянности. Многие бросались в озеро и тонули. Почти вся армия Фламиния и сам он погибли в этой битве.
Когда в Рим пришла весть о разгроме у Тразименского озера, в городе началась паника. С часу на час ждали появления вражеской армии у ворот города. Сенат: ввел чрезвычайное положение. Квинт Фабий Максим был назначен диктатором. Мосты через Тибр были уничтожены, спешно чинились укрепления.
Однако Ганнибал не осадил Рим, а направил свою армию через Умбрию и Пицен к побережью Адриатического моря. Он понимал, что взятие Рима требует длительной осады. Такую осаду было рискованно вести, имея в тылу еще не завоеванную Италию. После удачного опыта с привлечением на свою сторону галлов он имел основания рассчитывать на поддержку и даже на восстание населения Средней и Южной Италии против власти Рима. Поэтому, опустошая на своем пути поля и хозяйства римских граждан, Ганнибал щадил владения италиков, а пленных из их числа отпускал без выкупа.
Римские войска были пополнены новым набором. Их возглавил диктатор Квинт Фабий Максим, который учел опыт трех проигранных сражений. Он сознавал, что карфагеняне сильнее римлян в полевой войне, в открытом бою. Поэтому он перешел к тактике изматывания противника. Он уклонялся от решительных сражений с главными силами Ганнибала, но следовал за ним по пятам, нападая на отдельные отряды и уничтожая продовольственные запасы. Этими действиями затруднялось снабжение карфагенской армии.
Однако эта тактика не пользовалась популярностью у населения, которому затяжная война и пребывание вражеской армии на территории Италии несли полное разорение. Поэтому диктаторские полномочия Фабия Максима, прозванного Кунктатором (Медлителем) не были продлены. На 216 год консулами были избраны Луций Эмилий Павел и Гай Теренций Варрон. Варрон являлся ярым сторонником решительного ведения войны и обещал положить ей конец в тот же день, как увидит врага.
В июне 216 года произошло знаменитое сражение при Каннах, маленьком городке в Апулии. Римляне располагали перед этим сражением армией, которая насчитывала 80 тысяч пехотинцев и 6 тысяч всадников. Пехота Ганнибала насчитывала всего 40 тысяч воинов. Зато он имел количественный и качественный перевес в коннице — 14 тысяч всадников.
Римские войска построились в поле в боевой порядок, в центре которого расположилась вся основная масса тяжеловооруженной пехоты. Глубина построения достигала 70 рядов. Конница была расположена на флангах. Ганнибал построил свои войска в форме полумесяца, обращенного своей выпуклой стороной к противнику. В центре построения находился 20-тысячный отряд галльской и иберийской пехоты. Это были наименее стойкие части. Лучшая часть пехоты, укомплектованная из ливийцев, была расположена на флангах и несколько отодвинута назад. Оба конца полумесяца замыкались отрядами всадников.
Как и предлагал Ганнибал, римляне атаковали центр его расположения. Под давлением превосходящих сил противника отряд галлов и иберов начал отходить. Продолжая теснить противника, римская пехота втягивалась в глубину расположения его войск. В это время карфагенская конница устремилась в тыл наступающей римской пехоты. Римляне прекратили наступление. Задние шеренги вынуждены были повернуться, чтобы защищать себя от внезапного нападения. Справа и слева в атаку на римлян ринулись отборные части ливийской пехоты.
Несмотря на явное численное превосходство, римская армия попала в полное окружение. Ряды римлян смешались, началась паника. Римляне потеряли на поле боя 54 тысячи человек убитыми. 18 тысяч римлян было взято карфагенянами в плен. Ганнибал потерял 6 тысяч человек. Битва при Каннах уже в древности считалась непревзойденным образцом военного искусства. Название «Канны» впоследствии стало применяться ко всякому крупному бою приведшему к окружению и полному разгрому войск противника.