Через месяц Ганнибал вернулся в свой старый лагерь на горе Тифата, недалеко от Капуи. Затем он разорил Кумы и безуспешно пытался захватить Путеолы и Неаполь, ранее захваченную Капую снова отстоял Марк Клавдий Марцелл. Значительную часть лета 213 г. до н. э. Ганнибал провел в области Саленто. В январе 212 г. до н. э. он хитростью взял Тарент. Вскоре ему сдались города Метапонт и Фурии.
В 211 г. до н. э. Ганнибал снова попытался снять осаду с Капуи, но потерпел поражение от римских войск. После этого он решил провести отвлекающий маневр на Рим, надеясь, что римляне оставят Капую. Простояв некоторое время под Римом, он отступил. Капуя сдалась римлянам. Это была серьезная неудача Ганнибала. Расправа римлян над жителями Капуи устрашила обитателей других городов, перешедших на сторону Ганнибала. Падение Капуи показало бессилие Ганнибала, не сумевшего предотвратить захват своего самого сильного и влиятельного из италийских союзников. Его авторитет среди них заметно упал. Во многих из союзных городов начались волнения в поддержку римлян.
В 210 г. до н. э. Ганнибал нанес поражение римлянам во второй битве при Гердонии, а затем война шла в Апулии с переменным успехом. В начале следующего лета Квинт Фабий Максим осадил Тарент, хотя Ганнибал, стоявший в Бруттии, намеревался помешать ему. Марцелл, получивший задание отвлечь Ганнибала, преследовал его до Апулии, где возле Канусия произошло сражение, в котором победили римляне. Когда Ганнибал пришел к Таренту, то город уже был взят Фабием с помощью измены. В 208 г. до н. э. консул Тит Квинкций Криспин попытался захватить Локры, но Ганнибал помешал ему. Тогда Криспин объединился с консулом Марцеллом, чтобы дать Ганнибалу решающее сражение. Однако тот устроил римлянам засаду, в которой погиб один консул, другой был серьезно ранен. После этого Ганнибал попытался хитростью взять Салапию, но ему это не удалось: его замысел был раскрыт.
Свои надежды на продолжение успешной войны в Италии Ганнибал возлагал на соединение со своим братом Гасдрубалом, шедшим из Испании. Консул Гай Клавдий Нерон двинулся против Ганнибала и одержал победу при Грументе. Тем временем Гасдрубал уже был в Италии, но его письмо брату было перехвачено римлянами. Пользуясь ситуацией, два римских консула нанесли поражение войску Гасдрубала, а сам он погиб в бою. Карфаген не имел больше возможности направить войска на помощь Ганнибалу, и ему пришлось покинуть Апулию и Луканию, отступив в Бруттий.
В последние два года для победы в борьбе с Карфагеном Рим сумел собрать значительные силы. Вопреки традициям Римской республики, армия была пополнена заключенными рабами, выкупленными за счет государства. Командующий римской армией консул Публий Корнелий Сципион («Сципион Африканский») перенес театр военных действий в Африку, чтобы вырвать инициативу из рук карфагенской армии. Отличным трамплином для переброски войск в Африку стала Сицилия. В 204 г. до н. э. Сципион с 30-тысячной армией высадился на африканский берег вблизи города Утика.