В 190 г. до н. э. война продолжилась, но на этот раз в наступление пошли римляне. Вторжение в Малую Азию было поручено консулу Луцию Корнелию Сципиону, но подлинным руководителем операции был его великий брат, Публий, сопровождавший армию в качестве легата. Казалось бы, перед лицом такого противника Антиоху стоило одуматься и воспользоваться, наконец, опытом и знаниями Ганнибала, но царь нашел для полководца достаточно неожиданное применение: его назначили командовать наспех сформированной в Финикии эскадрой. Выбирать Ганнибалу не приходилось, и он взялся еще раз выйти на бой против Рима. Правда, с римлянами ему сразиться так и не удалось. По пути в Эгейское море его эскадра столкнулась с флотом союзного Риму Родоса. Сражение произошло в августе 190 г. до н. э. у побережья Памфилии, при Сиде. Численность флотов была примерно одинаковой, но, хотя корабли Антиоха отличались большими размерами (так, среди них были три гектеры и четыре гексеры, то есть с семью и шестью рядами гребцов), качественное превосходство было на стороне родосцев. В ходе боя левому крылу сирийского флота, которым лично командовал Ганнибал, удалось потеснить противника, но за это время правое крыло во главе с придворным Антиоха Аполлонием было опрокинуто. Будучи не в силах сопротивляться всему вражескому флоту, Ганнибал тоже был вынужден бежать и активного участия в боевых действиях больше не принимал (Ливий, ХХХVII, 23–24; Корнелий Непот, Ганнибал, 8, 3–4; Зонара, 9, 20; Евтропий, 4, 4).
Вскоре после этого настала очередь основных морских сил Антиоха. В сентябре того же года неподалеку от Корики, у мыса Мионесса, произошло генеральное сражение между сирийским флотом под командованием Поликсенида и римско-родосским во главе с претором Луцием Эмилием Региллом. Хотя у сирийцев и было небольшое преимущество (восемьдесят девять кораблей против восьмидесяти), они вновь были разгромлены и, потеряв сорок два корабля, больше уже не могли противостоять римлянам на море (Ливий, XXXVII, 29–30).
Теперь Антиох все свои надежды возлагал на решающее сухопутное сражение. Он поспешно отступил в глубь Малой Азии, где стал собирать войска. Римская армия вместе с контингентами своих союзников последовала за ним и в конечном итоге настигла у Магнезии. Заболевший Сципион передал командование бывшему консулу Гнею Домицию Агенобарбу, и тот оправдал оказанное доверие. Битва (ее точная дата не установлена, предполагается, что это было начало 189-го или конец осени 190 г. до н. э.) вошла в историю как одна из наиболее славных побед римлян. О том, какое впечатление произвела она на современников, лучше всего свидетельствуют совершенно фантастичные данные о потерях сторон, приводимые Ливием: погибло до пятидесяти тысяч пехотинцев и три тысячи всадников армии Антиоха, а у римлян – не более трехсот пехотинцев, двадцать четыре всадника и двадцать пять человек союзного войска Эвмена Пергамского (Ливий, ХХХVII, 38–43; 44, 1–2). Так или иначе, но продолжать войну Антиоху было не с чем, и он принял все условия мира, продиктованные ему победителем. Окончательно они были утверждены весной 188 г. до н. э. в городе Апамее и заключались в следующем: Антиох должен был отказаться от всех своих завоеваний в Европе и Малой Азии вплоть до Таврского хребта (большая часть этих земель досталась Пергаму), выплатить пятнадцать тысяч талантов контрибуции и выдать наиболее явных врагов Рима, первым из которых был назван Ганнибал (Полибий, ХХI, 14, 7; Ливий, ХХХVII, 45, 11–18).
Об этом последнем требовании римлян Ганнибал не мог не догадываться и заранее скрылся от возможного преследования. После разгрома Сирии на Средиземноморском Востоке больше не было силы, которая могла бы всерьез угрожать Риму. Вследствие этого Ганнибалу пришлось навсегда распрощаться с планами реванша и спасать свою жизнь, так как даже теперь для римлян он казался слишком опасной фигурой, чтобы оставлять его в покое.
Из отрывочных упоминаний источников его дальнейший путь выглядит так. Еще во время переговоров, последовавших за битвой при Магнезии, он бежал в Армению к царю Артаксию, но там он пробыл недолго, перебравшись на остров Крит, откуда ему тоже пришлось вскоре уехать. Его последним убежищем стала Вифиния, царь которой, Прусий, предоставил ему свое покровительство. Вифиния в то время довольно неудачно воевала с Пергамом, и для Прусия талант его гостя оказался очень кстати – Ганнибал стал его военным советником и полководцем. Он с воодушевлением взялся за любимое дело, утешаясь, вероятно, тем, что сражается с одним из наиболее верных римских союзников. И снова успех был на его стороне, причем способность находить нестандартные решения помогла Ганнибалу одержать победу и в морской битве – по его приказу на палубы вражеских кораблей бросили сосуды с ядовитыми змеями (Корнелий Непот, Ганнибал, 10; Юстин, ХХХII, 4, 6–7).