Пройдя через земли галлов на Пиренеях, армия Ганнибала к середине лета 218 года до н. э. достигла реки Родан, и после первых стычек с римскими войсками под командованием консула Публия Сципиона Ганнибал на плотах-паромах смог переправить свои войска через Рону. Он стремился сохранить свои силы и потому избегал столкновений с римскими войсками.
С приближением Ганнибала к Альпам все племена кельтов восстали против Рима и перешли на сторону Ганнибала, пополнив его войска. В ноябре армия пунийцев начала переправу через Альпы и после труднейшего перехода вышла на равнину. За переход армия сократилась более чем наполовину, в ней остались 20 тысяч пехоты, 9 тысяч конницы и несколько боевых слонов.
Дав своей армии отдых, Ганнибал перевел ее на земли тавринов, воевавших с инсубрами. Инсубры установили дружественные отношения с Ганнибалом, а тот помог им разгромить тавринов и взять их столицу Таврисию (Турин). После разгрома тавринов на сторону Ганнибала перешли остальные галльские племена.
В первых же сражениях при Тицине и Треббии римские войска были разгромлены. Немалую роль сыграли в этом пунийская конница, действовавшая на равнинах, а также полководческий талант Ганнибала, который сумел навязать римлянам бой в не выгодных для них условиях. Вся Северная Италия оказалась под контролем Ганнибала. Цизальпинская Галлия стала его базой, обеспечивающей продовольствием и живой силой.
Весной 217 года до н. э. Ганнибал через Этрурию решил двигаться в Центральную Италию, к Риму. Предварительно он провел разведку дорог и вскоре выяснил, что почти все они хорошо известны противнику, кроме той, которая проходит через болота. Именно она позволяла нанести внезапный удар по римским войскам, которыми командовал Гай Фламиний.
В течение четырех дней и трех ночей армия Ганнибала шла по дороге, покрытой водой, через топкие болота с ядовитыми испарениями. Ганнибал вышел в тыл войскам Фламиния в районе Тразименского озера. Здесь им была организована засада, в которую попала, а затем была уничтожена армия Фламиния.
Однако после этой победы Ганнибал не пошел на Рим, а занялся созданием коалиции из подчиненных Риму племен. Против Рима восстали почти все племена Северной Италии, кроме ценоманов. Через Умбрию Ганнибал двинулся к побережью Адриатического моря, на Апулию; он рассчитывал разрушить римско-италийский союз в Центральной и Южной Италии. После официального сообщения Ганнибала в Карфаген о боевых действиях за два года карфагенский сенат принял решение оказать помощь пунийцам в Италии и Испании.