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