Если римские историки завышают римские потери втрое, то их истинную величину за 218–209 годы с учетом приведенных выше расчетов можно оценить в 60 тысяч убитых и умерших от ран и в 180 тысяч умерших от болезней. За последние годы войны римские потери пропорционально можно определить в 30 тысяч погибших и в 90 тысяч умерших от болезней. За Вторую Пуническую войну в целом римская армия потеряла 90 тысяч убитыми и умершими от ран и 270 тысяч умершими от болезней.
Исчислить потери карфагенян на основе римских источников невозможно, так как они преувеличены там в гораздо большей степени, чем потери римлян. Можно только предположить, что они были меньше, чем у Рима, так как карфагенская армия значительно уступала римской в численности. Русский военный историк Н. П. Михневич считал, что во Второй Пунической войне Рим потерял 300 тысяч убитыми, а Карфаген – 140 тысяч убитыми и 100 тысяч умершими от болезней. Число убитых с обеих сторон здесь существенно преувеличено, да и от болезней римское войско наверняка страдало ничуть не меньше карфагенского. Но предположение Михневича, что в бою потери карфагенян были примерно вдвое ниже потерь римлян, возможно, недалеко от истины. Тут должно было сказаться как полководческое искусство Ганнибала, так и более высокий уровень подготовки профессиональной армии Карфагена. Ее потери можно оценить в 45 тысяч убитыми и умершими от ран и 135 тысяч умершими от болезней.
После поражения при Каннах римляне призвали в армию всех способных носить оружие, начиная с 17-летнего возраста, и сформировали 4 легиона. Государство выкупило 8 тысяч рабов, которые составили еще два легиона.
Карфагенская армия двинулась на юг. Многие самнитские племена перешли на сторону Ганнибала. В Кампании Ганнибала поддержал крупнейший город Капуя, но на юге Италии, в области Великой Греции, Неаполь, Кумы и Нола сохранили верность Риму. Ганнибал заключил союз с македонским царем Филиппом V, а в Сицилии на сторону Карфагена перешел тиран Сиракуз Гиероним. Римляне, избегая решительных сражений, ограничивались действиями против коммуникаций армии Ганнибала и перешедших на его сторону италийских городов. Против Филиппа на Балканах была составлена коалиция из Этолийского союза, ряда греческих городов и пергамского царя Аттала I. Македоняне эту войну в конце концов выиграли, и римляне вынуждены были уступить им в 205 году некоторые свои владения в Иллирии. Однако непосредственно в Италии помочь Ганнибалу Филипп не смог.
Римляне в 212 году осадили Капую, обнеся ее контрвалационной и циркумвалационной линией. Ганнибал пошел на выручку Капуи, но не смог прорвать циркумвалационную линию. Тогда он в 211 году пошел на Рим, рассчитывая заставить римлян отказаться от осады Капуи. Однако римляне понимали, что у карфагенского полководца нет сил для осады прекрасно укрепленного «вечного города», и не ушли из-под Капуи. Ганнибал, разорив окрестности Рима, отступил на юг. Вскоре Капуя капитулировала. Ее жителей продали в рабство. В 209 году римляне достигли еще одного важного успеха: войско под командованием Фабия Максима взяло Тарент, а в 211 году пали Сиракузы.
В 210 году на Пиренейский полуостров прибыла римская армия под командованием Публия Корнелия Сципиона-младшего, сына убитого военачальника. В 209 году она взяла Новый Карфаген – главную пунийскую базу в Испании. При штурме римляне воспользовались отливом и ворвались в крепость со стороны моря, где укрепления были слабее. После падения Нового Карфагена многие испанские племена перешли на сторону римлян. В 208 году Гасдрубал из Испании двинулся на помощь Ганнибалу и в 207 году появился в Северной Италии. Ганнибал узнал об этом и перешел из Бруциума в Апулию, надеясь соединиться с братом где-нибудь недалеко от Рима и попытаться осадить вражескую столицу. Перед этим в ходе кампании 208 года карфагенянам удалось нанести поражение армии консулов Марцелла и Криспия, причем первый из них был убит, а второй ранен и вскоре умер. После этого Ганнибал деблокировал пунийский гарнизон в Локрах, осажденный римлянами. Те же, в свою очередь, взяли реванш на море. В сражении у Клупеи оказалась разбита пунийская эскадра из 83 судов.
Римляне располагали в то время в Италии 23 легионами. Часть войск во главе с консулом Клавдием должна была сковать армию Ганнибала, а другая, под командованием консула Марка Ливия, двинулась навстречу Гасдрубалу. Последний, в свою очередь, потратил время на безуспешную осаду Плаценции. Тем временем к Марку Ливию присоединился другой консул, Гай Клавдий Нерон, со своей армией. В сражении при реке Метавре карфагенское войско было разбито превосходящими силами римлян, а сам Гасдрубал убит.
Последнюю попытку помочь армии Ганнибала предпринял его брат Магон. В 205 году он переправился из Испании на Балеарские острова, а потом – на лигурийское побережье Италии с 12 тысячами пехотинцев и 2 тысячами всадников. Однако римляне его блокировали, и, несмотря на поддержку лигурийцев и галлов, помочь Ганнибалу Магон не смог.