Скоро Ганнибал убедился, что его планы по созданию антиримской коалиции из центральных, южноиталийских и греческих городов во главе с Капуей терпят провал. Несмотря на все попытки подчинить себе города Кампании, Ганнибал и примкнувшая к нему Капуя так и не смогли добиться успеха.
Численность пунийской армии продолжала уменьшаться Чтобы отвлечь силы римлян, Ганнибал заключил союз с царем Македонии Филиппом V, который надеялся вернуть Иллирию, частично находившуюся под властью Рима. Ганнибал также рассчитывал на создание антиримского союза из эллинистических государств. К союзу с ним присоединились Сиракузы, рассчитывавшие освободиться от римской зависимости.
Ганнибал понимал, что с имеющимися силами он не может ни захватить Рим, ни покорить латинов, и продолжал надеяться на помощь сената. Снабжение пунийского войска продолжало ухудшаться, союзники отказывались брать на постой его армию, а грабить их Ганнибал не мог, поскольку это могло бы окончательно оттолкнуть их от него. Ганнибалу пришлось довольствоваться разорением земель римских союзников.
В 212 году до н э. после продолжительной осады римляне овладели Капуей. Во время осады Ганнибал почти вплотную приблизился к городу, чтобы оказать помощь капуанцам, но так и не смог прорваться сквозь римские заслоны.
Ганнибал решил устроить демонстративный поход на Рим, чтобы отвлечь внимание от осажденной Капуи, но римляне скоро убедились, что реальная опасность отсутствует. Ганнибал не смог ни овладеть Римом, ни поднять против Рима латинские племена и снова ушел на юг Апеннинского полуострова.
Сразу же после падения Капуи от Ганнибала стали отпадать присоединившиеся к нему италийские города. Ганнибал был вынужден размещать в них гарнизоны и еще более ослаблял свое войско. Иногда он прибегал к жестоким репрессиям в отношении изменивших ему городов, и это еще более настраивало против него их население.
Не получая подкреплений из Карфагена, Ганнибал уже потерпел несколько поражений в сражениях с римлянами в Центральной Италии. Здесь он рассчитывал на соединение с войском своего брата Гасдрубала, шедшего из Италии. Однако в 207 году до н э. армия Гасдрубала была разбита в сражении на реке Метавре, а сам командующий погиб.
С разгромом войска Гасдрубала Ганнибал лишился последней надежды на подкрепление. С остатками своего войска он удалился на самую крайнюю точку Апеннинского полуострова – в город Бруттий. Он даже не смог оказать помощь своему брату Магону, высадившемуся с войском в Лигурии.
Постепенно главный театр военных действий перемещался в Африку, куда весной 204 года до н э. высадились легионы Сципиона. Но Ганнибал продолжал оставаться в Италии. Карфагенский сенат был готов уже заключить мир с Римом, но встретил сопротивление со стороны группировки Баркидов, которые настаивали на необходимости отзыва Ганнибала из Италии, надеясь, что непобедимый полководец сможет изменить ход войны.
Осенью 203 года до н э. Ганнибал с остатком своего войска высадился у города Лептиса и поспешил в глубь страны, где уже находились римляне. Ему удалось установить контакты с некоторыми нумидийскими племенами и ливийскими городами и общинами.
В 202 году до н э. у селения Нарагарра состоялась встреча Ганнибала со Сципионом. Однако эта встреча не принесла никаких результатов, и скоро последовало сражение при Заме – Нарраггаре. Это сражение стало последним сражением 2-й Пунической войны. Войска Ганнибала попали в окружение и были наголову разбиты. С небольшим отрядом Ганнибал бежал в Гадрумет.
Теперь все свои силы Ганнибал приложил к тому, чтобы убедить жителей Карфагена принять унизительные условия мира, продиктованные Сципионом.
Сам Ганнибал был избран суфетом и сразу же после своего избрания стал осуществлять программу внутреннего обновления страны. Поскольку члены олигархического совета (совета ста четырех), избираемые на свою должность пожизненно, не подчинялись закону, Ганнибал при поддержке народного собрания полностью обновил совет. Он также ввел строгую финансовую дисциплину, что позволило ему, не прибегая к повышению налогов на граждан, использовать все взимаемые на суше и на море пошлины на государственные нужды. Ганнибал не только смог выплатить Риму контрибуцию, но и пополнил государственную казну в надежде рано или поздно возобновить войну с Римом.
Карфагенская аристократия, ранее бесконтрольно распоряжавшаяся финансами страны, теперь лишилась этой кормушки и стала обвинять Ганнибала в ущемлении их прав и свобод. В Рим полетели доносы на Ганнибала.