Римская армия отступала на юг, и карфагеняне заняли всю Северную Италию. Тогда Ганнибал двинулся в Среднюю Италию, где его уже поджидали значительные военные силы противника.

В 217 году до н.э. на берегах Тразименского озера произошло сражение между армией Ганнибала и 40-тысячным войском римского консула Фламиния. В ходе сражения римляне попали в засаду, устроенную им карфагенянами в дефиле у Тразименского озера. Фламиний во главе своей армии, без должной разведки, в предрассветном тумане выступил в путь. Балеарские стрелки, африканская пехота и пешие галлы неожиданно напали с гор на колонну римлян. 15 тысяч римских легионеров, в том числе и Фламиний, были убиты. Остатки его армии или разбежались, или были уничтожены во время преследования. После сражения победители опустошили плодородную итальянскую область Кампанию, население её бежало в Рим.

Ганнибал высоко оценил организацию и вооружение римской пехоты, её высокую боевую выучку и слаженность в бою. Он решил и свою пехоту построить по римскому образцу. Это дало хорошие результаты и немало удивило неприятельских военачальников.

Ганнибал продолжил наступление на юг Апеннинского полуострова. В столкновениях с римлянами его армия неизменно демонстрировала слаженность в действиях пехоты и конницы, боевых слонов, против которых римляне до сих пор не могли найти «противоядия».

В 216 году до н.э. при Каннах состоялось большое сражение, в ходе которого римская армия под командованием Варрона и Эмилия потерпела поистине сокрушительное поражение. Ганнибал умело построил свою армию и решительно атаковал римское войско. Используя свою многочисленную и манёвренную лёгкую конницу, полководец окружил и уничтожил главные силы врага. В битве при Каннах пало около 50 тысяч римских воинов, не считая 6 тысяч пленных; карфагеняне же потеряли всего около 7 тысяч человек.

После полного разгрома неприятельской армии у Ганнибала была хорошая возможность пойти на Рим, но он эту возможность упустил. Когда же его войска появились вблизи Вечного города, там уже вновь была сформирована многочисленная армия. Ганнибал не смог оказать помощь и городу Капуе, который присоединился к нему и теперь был осаждён римскими войсками.

Однако блестящая победа карфагенской армии при Каннах не сломила республиканский Рим и не привела к распаду римско-итальянского союза, на что так надеялся Ганнибал. Его настойчивая просьба прислать из Карфагена подкрепление осталась без ответа. Он мог рассчитывать только на собственные силы, которые с каждым боевым столкновением с римлянами неумолимо уменьшались.

Не получив подкреплений из Карфагена, Ганнибал обратился за помощью к младшему брату Гасдрубалу, командовавшему карфагенскими войсками в Испании. Тот откликнулся на его призыв, но о перемещении войск Гасдрубала стало известно римскому полководцу Клавдию Нерону. В 207 году до н.э. римляне устроили противнику засаду у реки Метавр и разбили его.

В доказательство своей победы они прислали Ганнибалу отрубленную голову брата. Однако тот и не думал покидать Италию, продолжая с большим упорством вести боевые действия. Тем временем тактика Рима, направленная на затягивание войны и истощение сил карфагенской армии на итальянской земле, стала давать свои результаты. Оторванность от тыловых баз поставила войска Ганнибала в крайне затруднительное положение.

В 204 году до н.э. он получил известие о том, что римский полководец Сципион вторгся в Карфаген. Это заставило Ганнибала уйти из Италии и вернуться на родину. Постепенно Римская республика стала захватывать инициативу в войне. Чтобы увеличить численность римской армии, сенат объявил набор в неё годных для военной службы свободных граждан, начиная с 17-летнего возраста. Государство выкупило 8 тысяч молодых рабов, пообещав им свободу, если они вступят в римскую армию.

Римляне одержали ряд побед над карфагенянами и их союзниками в Сицилии, Испании и самой Италии. Карфагенский военный флот уже не был в состоянии вести войну на Средиземном море. Во время взятия римскими войсками сицилийского города Сиракузы был убит великий учёный Древнего мира Архимед.

Вернувшись на родину после 16 лет отсутствия, Ганнибал собрал новую армию и в марте 202 года до н.э. сразился с Сципионом Африканским при Заме. Если раньше карфагенский полководец побеждал неприятеля за счёт преимущества своей конницы, то на сей раз она уступила лучше организованной римской. Более того, римляне научились бороться с боевыми слонами противника — они обратили слонов в бегство, и те внесли большое замешательство в рядах африканской пехоты. В сражении при Заме армия Карфагена потеряла 10 тысяч человек, в то время как победители — всего 1500 человек. Разгромивший Ганнибала римский полководец получил тогда прозвание Сципион Африканский.

В 201 году до н.э. Римская республика и Карфаген заключили крайне тяжёлый для побеждённых мир, хотя Ганнибал настаивал на продолжении войны. Вторая Пуническая война закончилась полным военным поражением Карфагена: он выдал Риму весь свой флот и обязывался в течение 50 лет выплачивать победителю ежегодно 10 тысяч эвбейских таланов. Все карфагенские владения вне Африки отходили Римской республике. Африканская Нумидия объявлялась независимой от Карфагена. Рим получил полное господство в Средиземноморье.

До 196 года до н.э. Ганнибал управлял Карфагеном. Желание возобновить вооружённое противоборство с ненавистным ему Римом не покидало его. Заподозренный римлянами в подготовке новой войны и потеряв доверие своих сограждан, престарелый полководец был вынужден бежать из родного Карфагена, защите которого от врагов он отдал всю свою жизнь. Однако ненависть Рима преследовала его всюду.

Сперва Ганнибал нашёл убежище у сирийского царя Антиоха III, став его советником. После поражения сирийского правителя в войне с Римом 192-188 годов до н.э., Ганнибал укрылся в Армении, а потом в Фивонии. Там 70-летний полководец, опасаясь быть выданным Риму, принял яд. Согласно римским источникам, его последними словами были: «Надо избавить римлян от постоянной тревоги: ведь они не хотят слишком долго ждать смерти одного старика».

Ганнибал вошёл в военную историю как один из крупнейших полководцев Древнего мира. Полководческий талант сочетался в нём с даром мудрого государственного деятеля, политика и дипломата. Он сумел создать сильную карфагенскую армию, основой которой являлась пехота, а ударной силой — кавалерия. Пятнадцать лет он успешно вёл войну против могущественного Рима вдали от родины, опираясь лишь на собственные силы.

Карфагенский полководец разделял со своими воинами все тяготы и опасности войны. Даже римские хроники признают, что Ганнибал «никогда не приказывал другим делать то, чего не смог бы или не захотел бы сделать сам». Сражение при Каннах стало венцом полководческого искусства великого воителя древности — оно стало новым словом в тактике, первым примером нанесения главного удара на обоих флангах, окружения крупных сил неприятеля и его полного уничтожения. А переход многотысячной карфагенской армии с боевыми слонами через Альпийские горы и по сей день поражает воображение современников.