进军罗马城的希望越来越渺小。虽然在此期间汉尼拔仍与罗马打了几场显着的胜仗，于前212年彻底摧毁两支罗马军队，并在前208年的一场战役中杀死了两名罗马执政官，但他始终无法取得任何关键性的胜利。
退出义大利.前212年，汉尼拔攻下塔朗多，但无法成功佔领控制其港口。此时双方的优势已渐渐转向罗马。罗马在两次围城后于前211年夺回卡普阿，佔领钖拉库萨，并在西西里岛上摧毁了一支迦太基军队，平定了当地的起义。同时并与希腊本土的埃托利亚同盟结盟对付马其顿的腓力五世，腓力在遭到四面围攻之后不久便