И все же довольно скоро Ганнибал отказался от овладения неприятельской столицей - Римом.
Оставив для защиты Карфагена 16000 воинов и для обеспечения своей тыловой базы в Испании столько же солдат под командованием брата Гасдрубала, Ганнибал во главе 92-тысячной армии перешел реку Эбро и покорил к северу от нее иберийские племена.
После этого карфагенский полководец оставил на завоеванных землях 11-тысячное войско, а сам перешел через Пиренеи у средиземноморского мыса Креуз.
Обладая гибким умом и изобретательностью, Ганнибал для достижения поставленных целей прибегал к оригинальным и неожиданным для неприятеля мерам. Так, он привлек на свою сторону племена воинственных галлов на юге современной Франции, разбил коваров и форсировал реку Родан (Рону).
Вскоре его разведка - 500 человек нумидийской конницы - донесла Ганнибалу, что римская армия в количестве 24000 человек перекрыла путь в Италию вдоль средиземноморского побережья, расположившись походным лагерем около хорошо укрепленного города Массалии. Ганнибал решил обойти противника севернее, выставив против него заслон из конницы и боевых слонов, и вторгнуться в Северную Италию через Альпийские горы.
Пока Ганнибал пересекал Альпы, римский полководец Публий Корнелий Сципион - отец Сципиона Африканского - спешил в Северную Италию, чтобы отрезать карфагенянам путь. В ноябре 218 года до н.э. армия Ганнибала встретилась на реке Тицин (совр. Тичино) с 25-тысячным римским войском Сципиона.
После легендарного перехода через Альпы, когда Ганнибал потерял почти всю свою армию, в его распоряжении осталось около 20000 пехоты, 6000 кавалерии и всего несколько слонов. Несмотря на это, в сражении на Тицине римляне понесли большие потери, карфагеняне истребили почти всю вражескую кавалерию. Сам Сципион был тяжело ранен.
Пополнив свои войска в Галлии до 30000 человек, Ганнибал еще не был готов к осаде Рима, требовавшей в пять раз больше сил с учетом невозможности базироваться на подвоз морем и необходимости одновременно удерживать обширную область, осуществляющую снабжение армии.
Между тем немногочисленное, но хорошо обученное и дисциплинированное карфагенское войско в декабре 218 года до н.э. одержало еще одну победу: на реке Треббия, к верховьям которой отошел со своей пехотой Сципион, соединившись с армией другого римского полководца, Семпрония.
40000 римлян расположились здесь в хорошо укрепленном лагере и не желали выходить для битвы в открытое поле. Но Ганнибал перехитрил противника: он позволил ему одержать ряд легких побед над своими небольшими отрядами, одновременно опустошив все селения вокруг неприятельского лагеря. Ложная атака нумидийской конницы, перешедшей реку и выманившей из лагеря за собой римскую конницу, явилась прологом большой битвы.
Вопреки совету раненого Сципиона Семпроний перешел реку Треббию, намереваясь атаковать Ганнибала. Промерзшие в холодной зимней воде римляне сражались отважно, но после атаки карфагенской конницы Магона их левый фланг пришел в беспорядок, и они потеряли в битве более 30000 человек, тогда как потери Ганнибала составили вероятно немногим более 5000 солдат. Снова большие потери понесла римская кавалерия.
Семпроний пытался поначалу скрыть от римского правительства и тем более от народа подлинные масштабы катастрофы. Он донес в Рим, что произошло сражение, но непогода помешала одержать победу. Однако постепенно в Риме узнали правду - и что карфагеняне заняли римский лагерь, и что к ним примкнули все галлы, и что римские войска или, вернее, их остатки укрылись в городах, и что продовольствие им доставляется от моря по реке Паду: это был единственный путь, который Ганнибал не мог контролировать.
Все это посеяло в Риме страшную панику. Со дня на день ожидали приближения войск Ганнибала к самому Риму и не видели ни надежды на спасение, ни возможности получить помощь извне или эффективно сопротивляться.
Однако Рим не являлся первостепенной целью Ганнибала. Перезимовав в долине реки Паду, карфагеняне и галлы предприняли наступление в Центральную Италию. Здесь, весной 217 года до н.э. Ганнибал совершил первый в истории обходной маневр.
Совершив переход через занесенные снегом Апеннинские перевалы севернее Генуи, он прошел на юг вдоль морского побережья и за четыре дня форсировал топкие болота в пойме реки Арн (Арно), считавшейся непроходимой во время весеннего паводка.
При переходе карфагенскую армию застигла буря, заставившая воинов остановиться; сильнейший ветер, дождь и град, а потом и мороз опустошили ряды карфагенян; погибло много лошадей и семь слонов из тех, что еще оставались у Ганнибала после Треббии. Сам Ганнибал ехал на единственном оставшемся у него слоне. Внезапно из-за сырости, ядовитых болотных испарений, бессонницы у него воспалились глаза, и, поскольку полководец не имел ни времени, ни возможности лечиться, позже он потерял один глаз.
Спустившись с Апеннин, карфагеняне и галлы неожиданно для противника оказались между римскими армиями, блокировавшими главные дороги на Рим, и самим Вечным Городом. Ганнибал двинулся к Плаценции, где вскоре произошло сражение - сначала с явным перевесом в пользу римлян, которые, обратив карфагенян в бегство, преследовали их до самого лагеря. Однако Ганнибал, введя в бой дополнительные силы, заставил римлян отступить. В итоге битва при Плаценции закончилась вничью. И римляне, и карфагеняне были вынуждены отступить: первые, как говорит историк Тит Ливий, в Лукку, а вторые - в Лигурию. Там лигуры выдали Ганнибалу двух римских квесторов, Гая Фульвия и Луция Лукреция, двух военных трибунов и пятерых лиц из всаднического сословия, в большинстве сыновей сенаторов. Тем самым местные племена продемонстрировали свое желание установить с Ганнибалом союзнические отношения и принять участие в его борьбе против Рима.
Две главные дороги, ведущие в Центральную Италию и на Рим, которые обошел Ганнибал, были блокированы войсками консулов Гая Фламиния и Гнея Сервилия.
После обычной разведки Ганнибал установил, что его основная и не очень трудная задача заключается теперь в том, чтобы спровоцировать Фламиния на битву, в которой войска Сервилия не принимали бы участия. Фламинию нужна была победа и для того, чтобы еще больше укрепить свое положение, окончательно дискредитировать и отстранить от власти в Риме враждебные аристократические группировки. Поэтому Фламиний пошел бы в бой даже в том случае, если бы Ганнибал вообще бездействовал.
Но Ганнибал опередил. Местность у Арретии (Ареццо), где стояли войска Фламиния, он не счел удобной для боя и, оставив лагерь противника слева, двинулся к Фэсулам, а потом пошел, не встречая сопротивления, уже по направлению к Риму, разоряя и уничтожая мирное население, сжигая дома и хозяйственные постройки. Фламиний бросился следом. Увидав, что римские войска приближаются, Ганнибал, избрав для сражения гористый район неподалеку от горы Картоны, возле Тразименского озера, велел своим солдатам изготовиться к бою.
В апреле 217 года до н.э. Ганнибал напал из засады на армию Фламиния, проявившего большую неосторожность. Оказавшиеся в узком шестикилометровом проходе между горами и озером римляне попали в западню. Около 30000 солдат вместе с Фламинием сложили головы, остальные бежали в горы.
После этого Ганнибал выдвинул новую цель - перейти в южную, полугреческую Италию. В первую Пуническую войну итальянские греки поддерживали Рим, ибо господствующий на морях Карфаген являлся опасным конкурентом их торговли. Но теперь, с падением морского господства Карфагена, соперничества не было. Ганнибал мог рассчитывать на помощь этих богатых, но ненадежных союзников Рима. Однако и этих сил было мало.
Он все еще не спешил нападать на Рим, поскольку осознавал, что незавоеванная Италия представляла огромную опасность. Тем временем Квинт Фабий, ставший диктатором, избрал тактику уклонения от больших сражений, изматывая карфагенян неожиданными нападениями. Но римские плебеи, неохотно пошедшие на эту тяжелую войну, смотрели на затяжку ее, как на явление разорительное для бедного люда, создалась целая демагогическая агитация против осторожной стратегии Фабия, прозванного Кунктатором (Медлителем). В итоге презиравший такое поведение нетерпеливый магистр конницы Мунций Руф получил от сената статус командира, равного диктатору, и решил дать противнику сражение при Геронии. И только чудо - своевременная помощь Фабия - спасла честолюбивого Руфа от разгрома.