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