Поэтому для подготовки решительной войны с Римом нужно было прочно обосноваться в Иберии и, создав там опорные базы, начать поход на Рим.
Гамилькар Барка отправился в Иберию в 237 г. до н. э. Ему пришлось столкнуться с ожесточенным сопротивлением свободолюбивых иберов. С помощью силы и дипломатии Гамилькару и его преемникам удалось захватить большую часть полуострова к югу от реки Эбро, обучить и закалить в боях многочисленную наемную армию, пополнить казну и основать опорную базу — сильно укрепленный город Новый Карфаген (совр. Картахена). Погибшего во время войны с иберами Гамилькара заменил его зять Гасдрубал.
Рим внимательно наблюдал за событиями в Иберии и в 226 г. до н. э., стремясь положить предел карфагенской экспансии далее на север Иберии, заставил Гасдрубала заключить договор, по которому обязал карфагенян не переходить севернее реки Эбро. Вслед за этим римляне, начавшие опасную войну с галлами, ослабили внимание к иберийским делам, а карфагеняне получили большую свободу действий. Вскоре Гасдрубал тоже погиб в борьбе с иберами. Карфагенское войско провозгласило своим вождем старшего из сыновей Гамилькара Барка — Ганнибала (247—183 гг. до н. э.).
Новый карфагенский главнокомандующий Ганнибал считал, что римляне, ослабленные недавней войной с кельтами, не смогут собрать сильную армию, и потому решил начать военные действия. В 219 г. до н. э. он осадил и взял сильно укрепленный город Сагунт на восточном побережье Иберии, который был союзником Рима, что явилось поводом для войны. В следующем, 218 г. до н. э. Ганнибал повел свою армию в Италию, начав тем самым осуществление планов своего отца.
Узнав о походе Ганнибала, римляне не предприняли решительных действий, чтобы воспрепятствовать его движению. Римская армия была разъединена.
Ганнибал беспрепятственно прошел Северную Иберию и стал продвигаться по Южной Галлии к реке Родану (Роне), приближаясь к Альпам. С многочисленными племенами, через территорию которых он проходил, Ганнибал либо заключал мирные договоры, либо воевал. Римляне не сумели остановить движение карфагенской армии даже при переправе через широкую реку Родан.
Когда римляне подошли к переправе, карфагенская армия была уже на расстоянии трех дней пути и направлялась к альпийским проходам в Италию. Только теперь римляне поняли всю опасность планов Ганнибала. Срочно было принято решение соединиться обеим римским армиям и всеми силами защищать северные районы. Карфагенянам удалось навязать свой план ведения войны, что и предопределило их преимущество в течение ее первого периода. Осенью 218 г. до н. э. карфагенская армия, совершившая беспримерный в истории переход из Испании в Италию, спустилась с Альп в плодородную долину По. Цель похода была достигнута, но дорогой ценой. Если в начале похода у Ганнибала было около 80 тыс. пехоты, 10 тыс. конницы и 37 слонов, то в Италию он привел только 20 тыс. пехоты, 6 тыс. конницы и несколько слонов.
Консул Публий Сципион сделал попытку задержать Ганнибала. Не дожидаясь подхода другого консула с большей частью армии, он дал сражение Ганнибалу у реки Тицин (совр. Тичино) и потерпел поражение. Римская армия отступила к городу Плаценции, где и соединилась с подходившими свежими войсками. Ганнибалу удалось навязать сражение и на этот раз. Застигнув объединенную римскую армию врасплох, когда она переходила реку Требию, он в ожесточенном сражении разбил ее (битва при Требии, зима 218 г. до н. э.). Против Рима восстала большая часть Цизальпинской Галлии, и Ганнибал стал хозяином Северной Италии. За зиму 218/217 г. до н. э. он создал из кельтов новую армию: свыше 60 тыс. пехоты и 4 тыс. конницы влились в карфагенское войско, которое теперь насчитывало столько же солдат, сколько было в начале похода в Испанию. Ганнибал решил вторгнуться на территорию Средней Италии и, подняв на восстание покоренных Римом италиков, изолировать и разгромить Рим.
Римляне избрали в консулы популярного в народе Гая Фламиния, прославившегося своими победами над кельтами. Весной 217 г. до н. э. римские легионы во главе с Фламинием заняли укрепленную позицию в горных проходах Апеннинских гор, надеясь задержать Ганнибала. Однако Ганнибал, пройдя через Апеннины и через болота долины реки Арнуса (Арно), обошел позиции Фламиния, вышел в тыл римской армии. Он угрожал самому городу Риму. Фламиний бросился вслед за карфагенянами, стремясь прикрыть столицу. Используя поспешность Фламиния, Ганнибал устроил засаду на дороге по берегу Тразименского озера, по которой двигались воинские колонны. Римляне попали в окружение и были разбиты. Погиб и сам Фламиний (весна 217 г. до н. э.). Ввиду крайней опасности римляне избрали диктатора — старого, умудренного опытом и осторожного Фабия Максима — и приняли меры по обороне города. Но Ганнибал не пошел на Рим. Он избрал другой путь: вышел на побережье Адриатического моря и прошел в богатую Апулию, где дал отдых своему войску.
Римский диктатор Фабий, уклоняясь от решительной битвы, следовал за карфагенской армией по пятам, изматывая ее в мелких стычках. Ганнибал стремился к решительной битве, ему нужна была победа, чтобы склонить римских союзников к отпадению от Рима. Ганнибал умышленно отпускал без выкупа пленных италиков, не разорял их областей, стараясь всячески показать, что он воюет не против италиков, а против Рима. Из Апулии он медленно продвинулся в Самний, а из Самния — в Кампанию, склоняя на свою сторону италиков. Но попытки Ганнибала пока не давали результатов: Римско-италийский союз выдерживал испытание. Фабий предусмотрительно уклонялся от решительного сражения. Мало того, ему удалось запереть карфагенскую армию в одном из кампанских ущелий, недалеко от Казилина, и лишь военная хитрость и исключительные полководческие способности Ганнибала помогли карфагенцам вырваться из окружения.
Положение Ганнибала постепенно ухудшалось: его силы таяли, население было враждебным, римская армия начинала контролировать ситуацию. Однако осторожная тактика Фабия и разорение мелких земледельцев стали вызывать нарекания в Риме. Демократические круги народного собрания требовали решительных действий, и на 216 г. до н. э. консулами были избраны опытный военачальник Луций Эмилий Павел и популярный сторонник решительных действий Гай Теренций Варрон. Во главе объединенной армии, насчитывавшей 80 тыс. пехоты и 6—7 тыс. конницы, консулы летом 216 г. до н. э. близ местечка Канны встретились с карфагенским войском Ганнибала. У Ганнибала было почти вдвое меньше сил: 40 тыс. пехоты и 14 тыс. конницы. Несмотря на возражения Эмилия Павла, Теренций Варрон, полагаясь на количественный перевес в силах, развернул войска для битвы, не посчитавшись с тем, что широкая равнина позволяла его противнику использовать преимущества в коннице. Ганнибал выдвинул по направлению к противнику центр, где поставил более слабые части кельтов, а на флангах разместил отборные войска, выстроенные глубокими колоннами. Когда римляне ударили на выдвинутый центр противника и стали теснить его, они постепенно втянулись в мешок между карфагенскими флангами. Довершила окружение сильная карфагенская конница, отбросившая неприятельских всадников и обрушившаяся с тыла на легионную пехоту. Оказавшись в окружении, легионы пытались сопротивляться, образовав круг, но теснились и мешали друг другу. Вскоре битва перешла в избиение. Большая часть римлян была изрублена или взята в плен. Битва при Каннах считается классическим образцом военного искусства по полному окружению и уничтожению многочисленного противника армией меньшей численности.
Морально-политическое значение победы Ганнибала было очень велико. «Победа, — писал Плутарх, — резко изменила положение Ганнибала... теперь он сделался господином почти всей Италии. Большая часть самых значительных племен добровольно покорилась ему, Капуя — первый город в Италии после Рима — распахнула перед ним свои ворота».
Тонкий дипломат, Ганнибал, используя победу, попытался создать антиримскую коалицию. В 215 г. до н. э. он заключил договор с македонским царем Филиппом V, который обязался вторгнуться в Италию. Ганнибал привлек на свою сторону Сиракузское государство и некоторые греческие города в Сицилии. Рим оказался в кольце врагов.
Перед лицом столь грозной опасности римское правительство приняло энергичные меры. Прекратились внутренние раздоры между демократической партией и сенатом. Сторонники решительных военных действий, потерпев ряд поражений, потеряли политический авторитет, а влияние сената резко возросло. Обещаниями и угрозами Риму удалось сохранить верность большего числа латинских и италийских союзников. Были собраны новые войска. В их состав пришлось включить даже рабов, выкупленных государством. Вторжение македонского царя удалось предотвратить дипломатическим путем. Римляне поддержали выступление Этолийского союза против Македонии и вынудили Филиппа V воевать в Греции. Во главе новых легионов были поставлены опытный Фабий Максим и решительный Клавдий Марцелл. С 215 г. начался новый этап войны, который в целом можно определить как этап относительного равновесия. Римляне отказались от идеи достижения победы в решительном сражении и сделали ставку на длительную войну, рассчитанную на изматывание сил противника. Они раздробили свою армию на несколько частей, которые должны были действовать самостоятельно Одна из них должна была блокировать Ганнибала в Италии, препятствуя его дальнейшим успехам, другая была послана в Сицилию (овладев Сицилией, Ганнибал мог бы установить тесные связи с далеким Карфагеном, что вывело бы его из изоляции, потому римляне так дорожили Сицилией). Третья армия действовала в Иберии и сковывала здесь карфагенские войска, руководимые братом Ганнибала — Гасдрубалом. Постепенно коммуникации Ганнибала с его основными базами были перерезаны, а его италийская армия оказалась отрезанной и обреченной на уничтожение. Его наемные войска, не готовые к длительной войне, не могли долгое время сохранять боевой дух. Римлянам удалось привести к повиновению италийских союзников, для которых карфагенское господство было не менее тяжелым, чем римское. К тому же сенат стал проводить более мягкую политику по отношению даже к отпавшим союзникам. Римлянам удалось выиграть несколько мелких стычек в Италии, а в 211 г. до н. э. осадить и взять крупнейший город Сицилии Сиракузы.