Если брать боевые действия в Италии - могу сказать следующее. После поражения в битве при Каннах римляне окончательно перешли к стратегии избегания решающего сражения, в котором карфагеняне могли реализовать свои сильные стороны. Римляне били по более слабым союзникам Ганнибала, нападали на мелкие отряды карфагенян, атаковали одновременно в разных местах. Армия Ганнибала постепенно теряла силы в этих мелких стычках и лишалась ценных союзников (Капуя, Сиракузы и т.д.). Римляне, воюя на своей территории, без труда восполняли понесённые потери, у Ганнибала же начались проблемы с комплектованием войск: по политическим причинам ему почти не присылали подкреплений из Карфагена, войско его брата Газдрубала, шедшее на помощь из Испании было разбито благодаря перехваченному письму и умелому обманному манёвру римлян. Римляне постоянно совершенствовались: росло полководческое искусство, опыт и подготовка войск. Римский полководец Сципион предпринял успешную экспедицию в Испанию, лишив Баркидов (семейство, к которому принадлежал Ганнибал) их основной базы. После этого была предпринята высадка в Африке, и армия Ганнибала была отозвана из Италии.
Если брать битву при Заме (единственное крупное сражение, проигранное Ганнибалом), можно отметить переход ряда союзников Карфагена (в частности, Нумидии, располагавшей лучшей лёгкой конницей того временеи) на сторону римлян, превосходство в кавалерии и её умелое использование Сципионом (удар на флангах, а позже - удар в тыл, решивший исход сражения), а также неудачное применение слонов Ганнибалом (римлянам удалось вогнать их в панику, они повернули назад и смяли боевые порядки карфагенян).