זירת חצי האי האפניני במלחמה הפונית השנייה

רקע

חלק מהחוקרים המודרניים נטו לאמץ את טענת המקורות העתיקים, לפיה תוכננה המלחמה הפונית השנייה בידי בני משפחת ברקה כמלחמת נקם נגד רומא החל משנת 238 לפנה"ס, לאחר שהרפובליקה הרומית אילצה את קרתגו למסור לידיה את סרדיניה בתום מלחמת שכירי החרב. ההיסטוריון תאודור מומזן סבר שזו הייתה הסיבה לפלישתו של חמילקרת ברקה להיספניה, שנועדה להעניק לקרתגו קרש קפיצה לפלישה לחצי האי האפניני. כמו כן הוא סבר שתוכנית זו היא היא שעמדה מאחורי החלטתו של חניבעל ברקה בשנת 219 לפנה"ס לתקוף את סגונטום. אולם דעה זו היא בעייתית, שכן נראה שקרתגו לא התכוננה כלל למלחמה ולא פיתחה כלל את הצי שלה, שהיה הסיבה העיקרית לכישלונה במלחמה הפונית הראשונה, עם פרוץ המלחמה היו לרומא 220 ספינות מלחמה בעוד לקרתגו היו רק 100. מה גם שעד הרגע האחרון ניסו שני הצדדים לפתור את הסכסוך בדרכים דיפלומטיות.
עם פרוץ המלחמה שלחו הרומאים ארבעה לגיונות להיספניה בפיקוד פובליוס קורנליוס סקיפיו כדי להביס את חניבעל. בפני חניבעל עמדו שתי אפשרויות. הראשונה הייתה להישאר בהיספניה ולהילחם שם נגד הרומאים, כפי שעשה אביו בסיציליה במהלך המלחמה הפונית הראשונה. האפשרות השנייה הייתה להעביר את המלחמה לשטח האויב, ולפלוש לחצי האי האפניני. צבאו של סקיפיו לא היה גדול, ובהתחשב בכך שחניבעל נמצא בשטח שהיה מוכר לו היטב, כשלצידו שבטים בעלי ברית מהם יכול היה לגייס לוחמים נוספים, סביר להניח שאילו היה נשאר בהיספניה, יכול היה להביס את הצבא הרומאי שנשלח נגדו. עם זאת, מצביא מוכשר כחניבעל בוודאי למד היטב את לקחי המלחמה הפונית הראשונה. במלחמה זו זכו הקרתגים בלא מעט ניצחונות בקרבות נגד כוחות צבא וצי רומיים, אולם הרומאים תמיד הצליחו לגייס כוחות נוספים והניצחון הסופי במלחמה היה שלהם. בנוסף לכך, די היה בנוכחות כוח רומאי קטן יחסית בחצי האי האיברי, כדי לגרום לחלק מהשבטים האיברים לנטוש את בריתם עם קרתגו ולעבור לצידה של רומא, ולרתק את הצבא הקרתגי להגנת היספניה מה גם שהניסיון הוכיח שהרומאים הגאים לא יהיו מוכנים לחתום על הסכם כניעה, כל עוד עירם לא תהיה מאוימת ישירות. לפיכך, לדעת חלק מהחוקרים, חניבעל סבר שהדרך המהירה ביותר לכפות על רומא להסכים לסיום המלחמה בתנאים נוחים לקרתגו, תהיה באמצעות פלישה לאיטליה ויצירת איום ישיר על רומא גופא. לדעת חוקרים אחרים, חניבעל ידע היטב שהצבא הרומאי עולה בהרבה על הצבא הקרתגי מבחינה פוטנציאל כוח האדם העומד לרשותו ומבחינת רמת הציוד המשמעת והאימונים שלו, לכן התקווה היחידה לנצח במלחמה נגד הרפובליקה הרומית היא למוטט את שליטתה באיטליה, ליצור נתק בינה לבין בעלות בריתה, וליצור עליה לחץ כה כבד, שיכריח אותה לחתום על הסכם שלום נוח לקרתגו. חניבעל ציפה שהשבטים הגאליים בצפון חצי האי האפניני (מצפון לנהר הפו) יתקוממו נגד הרומאים ויחברו לצבאו, וחשב שניתן יהיה לגייס גם את תמיכתם של חלק מהערים והשבטים באיטליה, שמאסו בשלטון הרומאי. ייתכן שהוא אף חזה מראש אפשרות ליצירת ברית צבאית עם מוקדון נגד רומא. כמו כן, חניבעל הפריז מן הסתם באמונתו ביכולותיו שלו כמצביא ומדינאי. בהתחשב בתנאים אלו, הרי שההחלטה לפלוש לחצי האי האפניני נראית כהחלטה נכונה.
עם זאת, חלק מהחוקרים מבקרים את החלטתו של חניבעל לפלוש לאיטליה, וטוענים שהוא יצא למלחמה נגד רומא עם תוכנית אחת בלבד: קרב הכרעה שבעקבותיו תיכנע רומא. ייתכן שתוכנית זו הושפעה מהלקחים של העימותים הצבאיים הקודמים בין קרתגו לבין רומא. אולם משהתברר לחניבעל לאחר קרב קאנאי שתוכנית זו לא התממשה, ושהרומאים אינם מוכנים לנהל משא ומתן למרות תבוסתם בקרב, לא הייתה לו אסטרטגיה חלופית. לכן הוא נגרר, בניגוד לרצונו, למלחמת התשה מתמשכת (בה יכלו הרומאים להביא לידי ביטוי את המשאבים העדיפים שעמדו לרשותם) ונאלץ לצעוד "למעלה ולמטה בחצי הדרומי של חצי האי", בניסיון עקר לנתק את רומא מבעלות בריתה באיטליה. דקסטר הויס (Hoyos) במאמרו משנת 1983, "Hannibal: What Kind of Genius", ממשיל את חניבעל בשלב השני של המערכה לאדם המחזיק זאב באוזניו. הוא יכול להמשיך להחזיק בו, אולם לא יכול להכריעו או להרפות ממנו, כלומר לבצע נסיגה.

טקטיקה ואסטרטגיה

הלחימה בזירה האפנינית התאפיינה בחלק גדול מהזמן, בניסיונות של הצדדים היריבים להשתלט על ערים. באותה תקופה, היה מקובל להפעיל שתי טקטיקות עיקריות בעת תקיפת יעד מבוצר: הסתערות עם סולמות, מגדלי מצור ואילי ניגוח, או הטלת מצור ממושך, שנועד להכניע את העיר בעזרת הרעבה ומניעת גישה למשאבים. הרומאים אף פעלו בצורה ייחודית, במסגרתה הלגיונרים הסתדרו במבנה טסטודו צפוף שהגן עליהם מפני החצים וכלי ההטלה של האויב, ובצורה זו התקרבו לחומות העיר. בנוסף, הופעלו כלי ארטילריה כבדים שלא היו פרוסים בדרך כלל בשדה הקרב - הקטפולטות. כלי ארטילרי זה היה מסוגל להטיל סלעים כבדים שהיה באפשרותם לפגוע בחומות העיר. בנוסף, ירי מכלי ארטילריה קטנים יותר - סקורפיונים ובליסטראות, סילק את האויב מהחומות ולא אפשר למגנים להתגונן באופן יעיל. במקרים שטקטיקת ההסתערות נכשלה, התוקפים היו עוברים בדרך כלל לניהול לוחמת מצור. המצור היה מתנהל לרוב בטקטיקת "כיתור", במסגרתה היו מכתרים את העיר, חוסמים את דרכי הגישה אליה, ומונעים ממנה אספקה עד לכניעתה. בכל הקשור ללוחמת מצור, סבל חניבעל מנחיתות, כיוון שצבאו לא היה מצויד בכלי מצור, ולכן הוא נאלץ להישען על הסיוע של בני בריתו באיטליה, או לייצר את האמצעים הדרושים לכיבוש ערים (מגדלי מצור, אילי ניגוח וכלי ארטילריה) במקום.
חניבעל הבין היטב, שצבאו לא מסוגל לנצח לבדו במלחמה נגד הרומאים. לאחר קרב קאנאי הוא שלח את אחיו מאגו ברקה אל קרתגו בבקשה לקבל תגבורת. על פי ההיסטוריונים העתיקים, התגבורת נמנעה ממנו בשל התנגדות אויביו הפוליטיים בהנהגת חנו הגדול. עם זאת, במבט לאחור נראה שגם אם רצתה בכך, קרתגו הייתה מתקשה לספק לו סיוע משמעותי, משום שהנתיב הקצר ביותר מקרתגו לאיטליה, בדרך הים, היה חסום על ידי הצי הרומי, ששלט בימים. ציי מלחמה עתיקים לא יכלו לשהות בים ללא הפסקה לאורך זמן, אולם הרומאים החזיקו בנמלים ובבסיסים באיטליה, סיציליה, קורסיקה וסרדיניה, כך שהאגן המערבי של הים התיכון היה נתון לפיקוחם. הצי הקרתגני היה אחד הציים החזקים ביותר בעולם העתיק. בניגוד לצבא היבשה הקרתגני, הוא היה מורכב ברובו מאזרחי קרתגו, ולא משכירי חרב. אולם אובדן מרבית הבסיסים הימיים של קרתגו מחוץ לחופי צפון אפריקה, שנפלו לידי הרומאים לאחר המלחמה הפונית הראשונה, והשימוש היעיל שעשו הרומאים בגשרי השתלטות (ה"עורב") במהלך התנגשויות ימיות עם הצי הקרתגני, העניקו עדיפות גדולה לצי הרומאי. הקרתגים הכירו בכך, ובמהלך המלחמה נערכו אך מעט קרבות ימיים. חניבעל, שהבין שהשליטה הרומאית בים מונעת ממנו לקבל תגבורות מהבית, ניסה תמיד להשתלט על ערי חוף, שדרכן יוכל אולי לקבל תגבורות קטנות. למרות זאת, בקרתגו לא יכלו לספק לו עזרה רבה, מכיוון שהכוחות היו דרושים בשאר הזירות. בפועל, חניבעל קיבל סיוע משמעותי מקרתגו בדרך הים רק במקרה אחד, זמן קצר לאחר קרב קאנאי, כאשר בומילקר הצליח להנחית ארבעת-אלפים פרשים נומידים, ארבעים פילים ואספקה בנמל לוקרי. בנוסף, בשלבי הסיום של המלחמה הפונית השנייה, הצליח מאגו ברקה, אחיו של חניבעל, לנחות באזור ליגוריה עם כוח משמעותי.
דרך נוספת שבה אולי יכלו הקרתגנים לספק סיוע לחניבעל, הייתה דרך היבשה. אולם מסעו של חניבעל לאיטליה דרך היספניה גאליה והרי האלפים, הוכיח שמדובר בדרך קשה מאוד. כמו כן, במסגרת הזירה האיברית במלחמה הפונית השנייה, הרומאים השתלטו על דרום-מזרח היספניה ועל אזור הפירנאים, עובדה שמנעה אפשרות של מסע כזה. רק בשנת 207 לפנה"ס, הצליח עזרובעל ברקה לחמוק מהצבא הרומאי בהיספניה, ולהגיע אל חצי האי האפניני בדרך היבשה. כמו כן, בקרתגו אמנם ניסו לעורר מרידות אנטי-רומאיות בסרדיניה ולבצע פשיטות על סיציליה, אולם ניסיונות אלו הסתיימו ללא הישגים מבחינת חניבעל, ועד סוף המלחמה הסיוע שקיבל מהבית היה מועט. מסיבה זו ניסה חניבעל להשיג את תמיכתם של בעלי ברית חיצוניים, מוקדון וסירקוסאי, שיכלו אולי להעניק לו סיוע כזה, וגם להעסיק את הרומאים בזירות נוספות כדי לגרום להם לדלל את כוחותיהם בחצי האי. תוכנית זו הצליחה מעט מאוד, הרומאים הצליחו לעורר את הליגה האיטולית ופולייס נוספת ביוון ההלניסטית נגד מוקדון, כך שפיליפוס החמישי, מלך מוקדון לא היה יכול לסייע לבן בריתו. הרומאים הציבו שני לגיונות בסיציליה, והצליחו לאחר סדרת קרבות לכבוש את סירקוסאי.
בשלב הראשון של המערכה, האמין חניבעל שרומא תיכנע, או לפחות תאלץ לקבל הסכם שלום בתנאים הנוחים לקרתגו, לאחר שצבאה יובס במספר קרבות מכריעים. אולם לאחר קרב קאנאי, סירבו הרומאים להיכנע והמשיכו להיאבק אף על פי שמצבם היה קשה. חניבעל, שבלאו הכי לא היה יכול במצבו להטיל מצור על רומא, נאלץ מעתה ואילך להסתמך בעיקר על אסטרטגיה, שנועדה להעביר לצידו את בעלות הברית האיטלקיות של רומא, ולנתק את הקשר בינן לבין רומא. הרומאים שלטו על ערים רבות באיטליה שתושביהן נטרו לה טינה. ערים אלו יכלו לספק לחניבעל אספקה ונשק, וכן להעניק לו מקלט בעונת החורף. חניבעל ידע לנצל רגשות איבה נגד הרומאים וסכסוכים פוליטיים בין הערים, ודאג להדגיש שוב ושוב שמלחמתו מכוונת כלפי רומא ולא כלפי שאר העמים יושבי חצי האי. הוא שחרר לחופשי שבויים, שהשתייכו לחיילות העזר שגויסו מקרב בעלות הברית האיטלקיות, בעוד שאת השבויים הרומאים מכר לעבדות. בערים שכבש הוא ביטל את המיסים שגבו הרומאים וגבה מיסים נמוכים יותר, אם כי דרש נאמנות מוחלטת וכן אספקה וציוד. בפועל, התוצאה שהשיג הייתה דלה יותר מהמצופה, ועל אף שמספר ערים חשובות הצטרפו אליו, הרי שרבות מהן הוא נאלץ לכבוש בכוח הנשק. עם זאת, חניבעל הצליח להחזיק מעמד בחצי האי במשך כ-15 שנים, כשהרומאים אינם מצליחים לגרש אותו משם. בסופו של דבר הוא נאלץ לסגת, לא בגלל תבוסה, אלא כדי להגן על מולדתו שהותקפה בידי צבא רומאי נוסף בפיקודו של סקיפיו אפריקנוס.

הטקטיקה הקרתגית

חניבעל נחשב לאחד המצביאים הגדולים בהיסטוריה. הוא ניתח את טקטיקת השדה הרומית ואת חולשותיה, ואימן את חייליו בהתאם. בשל העובדה שצבאו היה מרובה עממים, לא הייתה לצבא זה טקטיקת שדה אחידה, וחניבעל ידע לנצל את היתרונות הגלומים בכל סוגי החיילים שלו. שליטתו בהם הייתה ללא רבב, ולמרות השפות המרובות שלהם ומנהגיהם השונים, הוא הצליח ליצור מהם צבא אחיד היודע להילחם כאיש אחד ונאמן לקרתגו. חייליו לא בגדו בו גם בשעות הקשות ביותר, ומקרי העריקה בצבאו היו נדירים ביותר.
חניבעל ידע לפעול בצורה מקורית ולא שגרתית, שיטת הפעולה החביבה עליו הייתה הצבת מארבים לכוחות הרומיים. הוא היה בין המצביאים הראשונים בהיסטוריה שעשו שימוש יעיל במודיעין צבאי. הוא היה מראיין בעצמו שבויי מלחמה כדי לשאוב מהם מידע על כוחות האויב ועל מפקדי הצבא הרומי נגדם לחם, והיה טומן מארבים מוצלחים ומשמיד יחידות רומיות שלמות. חניבעל ניתח את אחת החולשות העיקריות של הצבא הרומי - חיל הפרשים, והבין עד מהרה שזוהי הזרוע הפחות חזקה של הצבא הרומי, ומולם הציב את הפרשים הנומידים וההיספנים המעולים שלו. קרבות בין פרשים רומים לפרשים מצבאו של חניבעל, הסתיימו בדרך כלל בניצחון קרתגי. הטקטיקה החביבה על חניבעל הייתה איגוף. במסגרת שיטה זו, היה חיל הרגלים הקרתגי, הנחות מחיל הרגלים הרומאי, מעכב במרכז את הכוח הרומי העיקרי, בעוד הפרשים היו מביסים את הפרשים הרומיים שהיו מוצבים באגפים, ולאחר מכן תוקפים את המאניפולוס הרומאי מעורפו.

לאחר קאנאי

לאחר קרב קאנאי, בילה חניבעל זמן מסוים באיסוף השלל ובהכרעת כיסי התנגדות רומאיים אחרונים. וארו עצמו נמלט מהקרב עם שבעים פרשים בלבד. כוח רומאי גדול יותר, שכלל מעל 2,000 לגיונרים, נמלט לעיר קנוסיום (קאנוסה המודרנית). מפקדיהם, שסברו שהקיץ הקץ על רומא, תכננו להימלט מחצי האי דרך הים. המזימה נמנעה הודות ליוזמתו של סקיפיו הצעיר, שארגן את חבירת הכוח אל מחנהו של וארו שחזר מובס אל רומא.
חניבעל בילה כמה ימים במנוחה, ולאחר מכן, מכיוון שהיה זקוק לכסף, ניסה לארגן את פדיונם של השבויים הרומאיים שבידיו. הוא שלח עשרה מנכבדי השבויים אל העיר, והללו התחייבו לחזור למחנה הקרתגי בלי קשר לתוצאות המשא ומתן. כמו כן שלח את אחד מקציניו, קרתאלו, בניסיון להגיע להסכם כניעה הוגן, אולם הסנאט סירב אפילו לדון על אפשרות כזו, וקרתאלו הצטווה לעזוב את רומא מיד. צעד אמיץ זה נחשב במחקר המודרני, למעשה שהציל את רומא בשעת משבר. הסנאט אף סירב לפדות את השבויים, בטענה שהללו בגדו בחובתם כחיילים. הרומאים החלו לנקוט בצעדים מעשיים כדי לשקם את העיר. אשמת הכישלון הוטלה על שתי בתולות וסטליות שסרחו. נשים נשואות הצטוו לא לצאת מבתיהן כדי לקונן על אחיהן בעליהן ובניהן שנהרגו, והקינות הוגבלו לזמנים ולמקומות מסוימים. גיל הגיוס הונמך ל-17, ופושעים ועבדים קיבלו רשות לפדות עצמם ולהתגייס לצבא. כלי הנשק הוצאו ממקדשי האלים והחיילים החדשים חומשו בהם. מרקוס יוניוס פארה מונה כדיקטטור באופן זמני.
המטרה העיקרית של הצבא הקרתגי כעת, הייתה למצוא בסיסים לחורף, וכן לפתור את בעיית האספקה. חניבעל עזב את פוליה ופלש למחוז קמפניה. משקרב החורף, הגיע לשערי העיר החשובה נולה. חניבעל תכנן לכבוש אותה בהסתערות פתע, אולם מצא את העיר מוכנה היטב למצור. הוא ידע שמחסור באספקה והחורף המתקרב לא יתנו לו להטיל מצור יעיל על העיר, על כן נסוג וחיפש מקום לחייליו לחורף. העיר העשירה קפואה פתחה בפני הקרתגים את שעריה, וחניבעל נפגש עם נכבדי העיר וכרת עמם ברית הוגנת, על פיה הורשתה קפואה לשמור על חוקיה ומנהגיה, ובניה היו פטורים משירות בצבאו של חניבעל. חניבעל קבע את מחנהו בהר טיפאטה סמוך לקפואה, והורה לחייליו לשלם בכסף מלא על משתאות מזון או כלי נשק, אף על פי שצבאו החזיק למעשה בעיר. הוא קיבל שם נציגים משבטים קמפנים שונים, וכן מהברוטים, הלוקנים, הסמניטים והאפולים, שכולם הציעו לו נאמנות. הברית שחניבעל הציע הייתה מחייבת הרבה פחות מהברית שהציעו הרומאים, כך שהיה קל יותר לקבל אותה.
חניבעל המשיך לנסות להעביר לצידו את הערים המקומיות. הוא תקף את נאפולי, וחיל המצב הרומאי שלה הובס מול חומות העיר. עם זאת, הסנאט המקומי עמד באומץ בהתקפה, וחניבעל נאלץ לוותר. חניבעל השיג פיצוי בכך שלכד בהסתערות את הערים נוקריה (Nuceria) ואקרי (Acerrae). במקורות מתואר טבח אכזרי שביצע חניבעל בתושבי הערים שנמלטו בהמוניהם, אולם חוקרים מודרניים דוחים את הסיפור וסוברים שמדובר בתעמולה רומית. במקביל, תקף חניבעל את העיר החשובה קאסילינום, ששכנה על גבול פוליה-קמפניה. הרומאים היו נחושים למנוע את נפילת העיר, והדיקטטור פארה יצא בראש צבא אליה. חניבעל הביס את הצבא הרומאי בשערי העיר, מה שאפשר לו להטיל עליה מצור יעיל. העיר הורעבה קשות, וכל מאמצי הרומאים להעביר אליה סיוע נכשלו. בסוף נובמבר או בתחילת דצמבר נכנעה העיר והסכימה לקבל אליה חיל מצב קרתגי. במקביל, הותקפה פאטאליה (Petelia) בידי כוח קרתגי שכלל גם המוני מתנדבים מקומיים טריים. מנהיגי העיר פנו לסנאט, אולם הלה הודה שאין ביכולתו לעשות דבר. כעבור עשרה חודשים, לאחר שלא נותר עוד מזון בעיר, נכנעו התושבים.
הרומאים מצדם, החליטו להמשיך מעתה ואילך עם שיטת האסטרטגיה הפביאנית. חניבעל העביר את חורף 216–217 בקפואה, וחייליו נהנו משפע המותרות שבעיר, מה שהוליד את הביטוי "חורף קפואני". פיליפוס החמישי, מלך מוקדון, שלח משלחת רשמית לדון עמו על ברית אנטי-רומאית. ברית כזו הייתה בדיוק מה שחניבעל היה צריך: פיליפוס היה יכול לספק לחניבעל כוחות רעננים שקרתגו התקשתה לספק לו. תנאי ההסכם שנחתם קבעו כי המלך יכין צי גדול בן כמאתיים אניות, יפלוש לאיטליה, יבוז את החופים ויילחם בים וביבשה בכל הכוח שברשותו; בתמורה יוכל להרחיב כרצונו את גבולות ממלכתו בבלקן. עם זאת, הרומאים הפעילו על פיליפוס לחץ כבד והתוכנית נדחתה לשנה הבאה. כמו כן, גם בסרדיניה החלו המקומיים לגלות עצבנות כלפי השלטון הרומאי, ובהיספניה החלו שני אחיו של חניבעל להשיב מלחמה נגד האחים סקיפיו. הרומאים מצאו עצמם נאבקים בארבע זירות בו זמנית (איטליה, סרדיניה, היספניה, הבלקן), וחניבעל היה יכול לקוות שבקרוב מאוד יאלצו לבקש כניעה.

תנופה קרתגית

כקונסולים של שנת 215 לפנה"ס נבחרו מרקוס קלאודיוס מרקלוס וטיבריוס סמפרוניוס גרקכוס. מרקלוס חנה בנולה, וגרקכוס חנה בעיירות בקמפניה. חניבעל חנה בהר טיפאטה, לא רחוק מקפואה. שני הקונסולים החליטו לבצע פשיטות על כפרי השבטים הנאמנים לחניבעל, במטרה להתיש אותם ולגרום להם לחזור לברית עם הרומאים. גרקכוס ביצע פשיטה על כפריהם של שבטים הנאמנים לחניבעל. חניבעל האמין שגרקכוס עדיין בוזז ויקל עליו לתפוס אותו, אולם גרקכוס נמלט לקומאי והתבצר בה. חניבעל נסוג לטיפאטה וחזר עם מגדלי מצור, אולם לאחר קרב קצר נאלץ לסגת חזרה לטיפאטה.
בהמשך הגיעה תלונה נוספת אל חניבעל מפי בעלי בריתו, שמרקלוס משחית את אדמותיהם. חניבעל תקף את נולה, מבצרו של מרקלוס, אולם מרקלוס התגונן היטב, הוציא להורג את כל מי שלא היה נאמן לרומא, וביצע גיחות נועזות על החיילים הקרתגיים. לכך הצטרף גשם כבד שהקשה עליהם. חניבעל איבד כמה אלפי חיילים בעוד אבדות הרומאים הסתכמו במאות ספורות בלבד. בנוסף על כך, בקרב זה קרה לחניבעל מה שלא אירע לו עד אז אלא פעמים מעטות בלבד במהלך המערכה באיטליה. כמה מאות פרשים נומידיים ואיברים ערקו אל הרומאים תמורת הבטחה לאדמה.
חניבעל נסוג חזרה לאפוליה, והקים כוח מיוחד שכלל בעיקר מגויסים טריים משבט הברוטיים. כמפקדם מינה חניבעל את חנו בן בומילקר, והורה לו לנסות לתפוס את ערי יוון הגדולה. ערים אלו היו למעשה מושבות יווניות בשליטת רומא, שהמרירות בהן נגד הרומאים הייתה רבה. עם זאת, התברר שהיוונים חששו יותר מדי מהרומאים, והצלחותיו של חנו היו מועטות. הוא ניסה את מזלו ברגיום, אולם נכשל. לאחר מכן נע לכיוון לוקרי, שתושביה החלו להימלט בהמוניהם. כוח פרשים קרתגי בפיקודו של מצביא בשם חמילקרת, פתח במרדף אחרי הנמלטים, והצליח להניס אותם חזרה אל בין החומות. חנו הצליח להגיע למשא ומתן עם הלוקרים, על פיו העיר לא תיבזז ולא תיפגע, ובתמורה יקבלו הקרתגים שימוש חופשי בנמל החשוב של לוקרי. אולם הברוטים, שמלכתחילה הצטרפו אל חניבעל במטרה לשדוד ולבזוז, התאכזבו מכך. בתגובה הם תקפו את נמל קרוטון בלי לבקש אישור מהמפקדים הקרתגיים, וזאת במטרה שהשלל יהיה שלהם בלבד. קרוטון הייתה עיר עשירה ששכן בה מקדש מפורסם של יונו. חניבעל ידע שביזת עיר כזו תבאיש את ריחו בעיני שאר הערים, ועל כן הורה לחנו לפנות את נכבדי התושבים ובראשם אדם בשם אריסטומאכוס אל לוקרי, ולהתיר לברוטים לשדוד באופן מפוקח את האחוזות הריקות.

ייצוב החזית

כקונסולים של שנת 214 לפנה"ס נבחרו מאקסימוס (פעם רביעית בחייו) ומרקלוס (פעם שלישית בחייו). בין השניים היו חילוקי דעות, שכן מרקלוס החזיק בדעה שיש להילחם בחניבעל בכל אמצעי, בעוד מאקסימוס רצה להמשיך ולהשתמש באסטרטגיה הישנה שלו של אדמה חרוכה. אולם הכל היו תמימי דעים שרומא נמצאת כעת במלחמה גדולה בכמה חזיתות, ועל כן החלה רומא בהכנות גדולות במסגרתן הוגדל מספר הלגיונות ונבנו ספינות מלחמה חדשות ביוזמת אנשים פרטיים. חניבעל מצדו נע מקמפניה לפוליה, וחנה ליד אגם אווארנוס (Avernus), רשמית לצורך הקרבת קורבנות, אולם בפועל כדי לרגל אחר הביצורים של העיר פוטואלי. הוא העמיד פנים שמטרתו היא העיר קומאי, אולם פנה בהפתעה אל פוטואלי, שחיל המצב הרומאי שלה כלל 6,000 איש והייתה בטוחה באופן טבעי בשל תנאי השטח הקשים ובנוסף לכל גם בוצרה היטב. לאחר שלושה ימי מצור, נסוג חניבעל ועבר לבזוז את סביבותיה של נאפולי. העיר ניצלה רק הודות להבטחה מצד מספר סנאטורים מנולה, שהבטיחו להסגיר לידיו את העיר. חניבעל נע לכיוון נולה, אולם הקונסול מרקלוס קיבל ידיעה מוקדמת על הקשר והגיע בזמן כדי לעצור אותו.
במקביל, פאביוס קיבל ידיעה שחנו נע עם צבאו אל בנבנטום (בנוונטו), כ-50 ק"מ צפונית-מזרחית לנאפולי. תנועה זו הותירה את העיר קאסילינום ללא הגנה ופאביוס פתח במצור עליה. במקביל, הפרוקונסול גרקכוס נע עם כוחותיו אל אותו אזור בדיוק, מכיוון לוקריה (Luceria). לגרקכוס נודע שחנו חונה באזור הנהר קלורה אירפינו (Calore Irpino), כשלושה קילומטרים בלבד ממחנהו של גרקכוס. גרקכוס הצליח לקבל אישור מיוחד מהסנאט לצאת לקרב, שנראה לכאורה לא שקול בהתחשב בכך שחייליו של גרקכוס היוו מיליציה שכללה בעיקר עריקים, וכן פושעים ועבדים שהובטחה להם חנינה וחירות. אולם לאחר יום של התכתשות, שכונה קרב בנבנטום, הביסו הרומאים את הקרתגים וחנו נמלט משדה הקרב עם פחות מאלפיים פרשים. גרקכוס חגג את ניצחונו בבנבנטום ולאחר מכן חזר לרומא. במקביל נחלו הקרתגים כישלון נוסף כאשר מרקלוס הדף התקפה של חניבעל על נולה.
המצור על קאסילינום לא התנהל לשביעות רצונם של הרומאים. פאביוס ספג אבדות כבדות ונאלץ לבקש ממרקלוס לבוא לעזרתו. למזלם של הרומאים, חניבעל איבד עניין בנולה והחל לנוע אל טראנטום (טאראנטו) שבפוליה. מרקלוס העז להפקיד את נולה בידי 2,000 חיילים ונע במהירות אל קאסלינום עם שאר הכוח. התגבורת לא שינתה משמעותית את המצב, והעיר נפלה לבסוף בעזרת תחבולה. לאחר מכן, בתוך כמה ימים לכדו הרומאים סדרת ערים, בקרבות שפרטיהם אינם ידועים: פולפולה, מאלאה, קומפסה, טלסיה, קומפולטריה ואורביטניום. על פי המקורות, במהלך קרבות אלו איבדו הקרתגים 25,000 איש, מספר מוגזם ככל הנראה. כמו כן נתפסו 370 עריקים מהצבא הרומי. הם נשלחו לרומא ושם הוצאו להורג באכזריות.

מלחמת התשה

עם תום השנה ותחילת שנת 213 לפנה"ס, נבחרו כקונסולים קווינטוס פאביוס מקסימוס (בנו של פאביוס הראשון) וגרקכוס (פעם שנייה בחייו). באותה שנה בחר חניבעל להשתלט על העיר טראנטום, שהייתה נתונה תחת שלטון רומא מאז מלחמת פירוס, והמרירות בה נגד הרומאים הייתה גבוהה. העיר הייתה (ועודנה) עיר נמל חשובה בפוליה, ועל כן בעלת חשיבות אסטרטגית רבה מבחינת חניבעל. שני צעירים מבני העיר נפגשו עם חניבעל והגיעו עמו לתנאים שהשביעו את רצון שני הצדדים. עם זאת, כאשר חניבעל נע אל תוך שטח טראנטום, התברר שבני בריתו אינם חזקים מספיק, והוא נאלץ לשהות באזור תקופה ארוכה. הרומאים מצדם כבשו חזרה את העיר החשובה אריפי. השנה כולה עברה ללא התרחשויות מיוחדות למעט פשיטות של שני הצדדים.
בשנת 212 לפנה"ס נבחרו כקונסולים אפיוס קלאודיוס פולכר וקווינטוס פולביוס פלאקוס. בתחילת השנה הוציאו הרומאים להורג שני בני ערובה שבני טראנטום הפקידו בידיהם. בעקבות כך, האופוזיציה האנטי-רומאית בטראנטום התחזקה מאוד, ובוגדים מתוך העיר הכניסו פנימה את חניבעל בחשאי. בעזרת המקומיים, נטבחו לאחר קרב קצר כל החיילים הרומאים בעיר, פרט לאלו שנמלטו אל האקרופוליס. חניבעל נאם בפני אנשי טראנטום, הציג עצמו כמשחרר משלטונם העריץ של הרומאים, והזכיר להם את העובדה שלאחר קרב טראסמינוס הוא שחרר כמה טראנטינים שנפלו בשבי. הוא הבטיח לא לגבות מיסים ולא להציב מושל קרתגי בעיר, אולם ככל הנראה הסכימו הטראנטינים בהמשך להתפשר וחניבעל הותיר בעיר חיל מצב תחת פיקודו של קרתאלו.
הקונסולים החדשים החלו להטיל מצור על קאפואה, ובזזו את השדות באזור. חניבעל שלח את חנו כדי לדאוג לאספקת תבואה סדירה לקפואה. חנו הגיע מברוטיום ואסף תבואה מבעלות הברית הקמפניות. הוא חנה בסתר כשלושה קילומטרים מבנבנטום, ושלח משם את התבואה אל קפואה. הקונסולים קיבלו מידע על כך וחנו בבנבנטום עצמה, מרחק של יום מקפואה, במטרה לארוב לשיירת האספקה של חנו. התפתח קרב, במהלכו ספגו הקרתגים אבדות כבדות והרומאים בזזו את האספקה. חניבעל היה אותה תקופה עסוק בהכנעת חיל המצב הרומאי של טראנטום, שהתבצר כאמור באקרופוליס, אולם השתכנע שההגנה על קפואה חשובה יותר. הקונסולים קיבלו מידע על התקדמות מחנהו של חניבעל, ועל כן הזעיקו את הפרוקונסול גרקכוס, שחנה בלוקאניה. עם זאת, גרקכוס מת בדרך וצבאו התפזר. המקורות מוסרים גרסאות רבות בנוגע למותו, על פי חלק מהגרסאות הוא מת בידי קבוצת לוקאנים, שהזעיקו לעזרתם גדוד פרשים קרתגיים. אולם במחקר המודרני מקובל להאמין שהוא נע עם צבאו מלוקאניה אל קמפניה ובדרך נהרג במארב שיזם חניבעל או אחד מקציניו. הקונסולים ניסו את כוחם בהתמודדות קצרה עם חניבעל, אולם הובסו והחליטו להתפצל. פולביוס נסוג אל קומאי וקלאודיוס נסוג אל לוקאניה.
ברומא עצמה, מרקוס קנטיניוס פנולה, שלא החזיק בשום תפקיד רשמי, ביקש מהסנאט אישור לצאת עם 5,000 מתנדבים לקרב מול צבאו של חניבעל. מבוקשו ניתן לו, ובמהלך מסעו מרומא לקמפניה אף הצטרפו אליו מתנדבים רבים עד שצבאו כלל בסופו של דבר למעלה מ-8,000 איש. חניבעל נפגש עמו בקרב סילארוס, שכצפוי הסתיים בניצחון קרתגי. ניצחונו של חניבעל בקרב זה היה מכריע, אולם הסחת הדעת אפשרה לשני הקונסולים להתארגן למצור חדש נגד קפואה. חניבעל ניצל את ניצחונו ופלש לפוליה. הוא תקף את מחנהו של הפראיטור גנאיוס פולביוס פלאקוס (אחי הקונסול), ובקרב הרדוניה הנחיל לו תבוסה מוחצת. 2,000 רומאים בלבד ניצלו. הרומאים ניצלו את השתהותו של חניבעל בפוליה והידקו את המצור על קפואה. חניבעל נע במהירות חזרה לטראנטום והחל להתארגן לקרב.
עם סיום השנה, גנאיוס פולביוס קנטומלוס ופובליוס סולפיקיוס גלבה מקסימוס נבחרו כקונסולים של שנת 211 לפנה"ס. אולם הקונסולים של השנה שעברה, פולביוס פלאקוס וקלאודיוס פולכר, נותרו המפקדים בשטח, ובנו סוללות סביב קפואה במטרה לכתר אותה ולהרעיב אותה. חניבעל הותיר בברוטיום את כל הציוד הכבד והשלל שלו, ועם חיל רגלים קל ופרשים קלים נע במהירות מטראנטום אל קפואה. הוא הסתתר מאחורי הר טיפאטה ואז תקף בהפתעה את הצרים. הרומאים הופתעו וקלאודיוס נפצע קשה במהלך הלחימה, מה ששיבש את שרשרת הפיקוד הרומאית, אולם הרומאים החזיקו מעמד. חניבעל הבין שלא יוכל לשבור את הצרים על קפואה, והחליט לנסות לאלץ אותם לסגת על ידי איום על רומא עצמה. הוא הודיע לקפואנים שהוא אינו נוטש אותם באמת, וחמק עם צבאו מקמפניה. כאמור, אחד הקונסולים היה פצוע, מה שהקל על חניבעל לנוע במהירות דרך סאמניום אל לאטיום, ולהגיע למרחק מצור מרומא עצמה. על פי המתואר, שררה בעיר פאניקה רבתי, אולם הרומאים קיבלו מידע על תוכניתו של חניבעל מפי עריקים, לא בלעו את הפיתיון ולא הסיגו את הכוחות מקפואה. לחניבעל לא היו אמצעים ממשיים כדי לצור על רומא, והוא נאלץ להסתפק בביזת האזור. בסופו של דבר, הרומאים הזעיקו לאזור 15,000 רגליים ו-1,000 פרשים מכוחות העתודה והללו החלו להטריד את עורפו והוא נאלץ לחזור לפוליה דרך מרכז איטליה, תוך כדי בזיזת כפרים. לא נותר לו מה לעשות והוא נאלץ לצפות בקפואה עולה באש בידי הרומאים. המספר הגדול של הניצחונות הרומאיים בין השנים 203–214 כפי שהם מתוארים במקורות הרומיים מחשיד, ועל כן חלק מהחוקרים המודרניים מעריכים שקרבות רבים הסתיימו ללא הכרעה והמקורות הרומיים סילפו את העובדות.

מפנה במערכה

כקונסולים של שנת 210 לפנה"ס נבחרו מרקלוס (פעם רביעית בחייו) ומרקוס ואלריוס לאיווינוס. הרומאים ראו באותו זמן במרקלוס את המצביא המוכשר האחרון שנותר להם (מרקלוס כבש את סירקוסאי ולא הובס בידי חניבעל בנולה), ועל כן החזירו אותו במהירות מסיציליה ושלחו לשם את לאיוויניוס במקומו. מרקלוס כבש את סלאפיה, עיר באפוליה שמרדה ועברה לצדו של חניבעל, בעזרת הסיעה האוהדת לרומא בעיר, והרג את חיל המשמר הנומידי שבה. במקביל, הפרוקונסול פולביוס קנטומליוס נע באזור העיר הרדוניה שערקה לצד קרתגו לאחר קרב קאנאי, בתקווה להשיב אותה לברית עם רומא. הוא נהג בחוסר זהירות וחנה בעמדה לא נוחה. חניבעל ניצל זאת ותקף אותו במפתיע. בין 7,000 ל-8,000 חיילים רומאיים נהרגו והשאר נמלטו לסאמיניום. מרקלוס רדף אחריו ופגש בו באזור הכפר נומיסטרו (Numistro), תוצאות הקרב ביניהם לא הוכרעו, אם כי חניבעל בחר לסגת. מרקלוס רדף אחריו לעומק אדמת פוליה, אולם חניבעל נמנע מקרב במטרה להרוויח כמה שיותר זמן. בסופו של דבר, מרקלוס אכן נאלץ לחזור לרומא כדי לארגן את הקונסולאט של השנה הבאה ועל כן בלית ברירה ויתר על המרדף.
כקונסולים של שנת 209 לפנה"ס נבחרו פאביוס (פעם חמישית ואחרונה בחייו) ופלאקוס (פעם רביעית ואחרונה בחייו). מצבו של חניבעל היה לא טוב, והברית שהוא בנה התפוררה אט אט. עם זאת, גם ברומא נתנה המלחמה את אותותיה. בתחילת השנה הודיעו 13 ערים בעלות ברית שאין באפשרותן לספק יותר את מכסת הכסף והחיילים השנתית. עם תחילת השנה, בעקבות הוראה ישירה מהקונסולים, נע הפרוקונסול מרקלוס בעקבות חניבעל, שחנה באזור קנוסיום (קאנוסה). הם נפגשו בשני קרבות שהסתיימו ללא הכרעה, אולם בשניהם ספגו שני הצדדים אבדות כבדות. מרקלוס רצה להמשיך במרדף, אולם כמות הפצועים הרבה אילצה אותו לעצור למנוחה, מה שאפשר לחניבעל להימלט. חניבעל ספג מכה קשה, כאשר הקונסול פאביוס כבש בחזרה את טראנטום באמצעות בגידה מבפנים. מושל העיר קרתאלו נהרג. במקביל, כבש הקונסול השני, פלאקוס, מספר ערים בלוקאניה שהחשובה שבהן הייתה וולקיי (Volceii, בוצ'ינו המודרנית).
כקונסולים של שנת 208 לפנה"ס נבחרו מרקלוס (פעם חמישית ואחרונה בחייו) וטיטוס קווינטיוס קריספינוס. השניים חנו באזור טראנטום והטילו מצור על לוקרי. הם נהגו בחוסר זהירות וחניבעל הצליח להניס אותם משם. קווינטיוס התאחד עם צבאו של מרקלוס, אולם כאשר השניים יצאו לסיור שגרתי מלווים בקומץ פרשים, הם נפלו למארב קרתגי מתוכנן היטב. מרקלוס נהרג ועמיתו נפצע קשה. חניבעל לקח כשלל את החותמת של מרקלוס, וניסה לנצל אותה כדי לכבוש מחדש את סלאפיה. הוא כתב איגרת וחתם עליה בשם מרקלוס. באיגרת הוא הורה על החלפת חיל המצב הרומאי בעיר. הוא הלביש קבוצת לוחמים דוברי לטינית במדי הצבא הרומאי, ושלח אותם לעיר, אולם קווינטיוס, שהכיר את הטקטיקות החביבות על חניבעל, הזהיר מראש את מפקדי חילות המצב שמרקלוס מת. מפקד חיל המצב של סלאפיה נתן לחיילי חניבעל להיכנס לעיר ולאחר מכן טבח בהם.

מותו של עזרובעל

חניבעל הבין שכוחות רעננים הם הסיכוי היחיד שלו לנצח, ובאמצעות עיר הנמל האחרונה שלו קרוטון, יצר קשר עם אחיו עזרובעל שלחם ברומאים בהיספניה, וביקש ממנו לנסות להגיע לאיטליה באותו מסלול שבו הגיע הוא עצמו. עזרובעל ספג אותה תקופה תבוסות מבישות מידי הרומאים, והיה נאלץ ממילא במוקדם או במאוחר לנטוש את היספניה. הוא נאבק ברומאים בקרב באיקולה לקראת סוף שנת 208 לפנה"ס, ולאחריו נסוג בזהירות אל צפון היספניה. הרומאים בחרו שלא לרדוף אחריו בשל מזג האוויר הקשה. עזרובעל חצה את הרי הפירנאים, ופתח במסע מזורז במסלול של אחיו. עזרובעל נותר בגאליה למשך החורף כדי לגייס חיילים חדשים. תנועתו נצפתה בידי בני העיר מאסיליה, שהייתה בברית עם הרומאים, והחדשות גרמו לזעזוע ברומא. במהלך האביב, המשיך עזרובעל את מסעו וחצה במסע מזורז את האלפים, מסעו היה קל בהרבה מזה של אחיו, כיוון שהוא התנהל במזג אוויר נוח יותר עם מורי דרך מנוסים, והשבטים הגאלים שיתפו פעולה במידה רבה יותר. עזרובעל הגיע אל עמק הפו בקיץ של שנת 207 לפנה"ס עם 30,000 אנשים בערך. הוא רצה לעודד את שבטי הגאלים להצטרף אליו, ועל כן הטיל מצור על המושבה הרומאית פלנקטיה. עם זאת, בני העיר התגוננו היטב, ועזרובעל, שידע היטב שאסור לו לבזבז זמן, החל לנוע דרומה כדי לחבור אל חניבעל. אילו שני הצבאות הקרתגיים אכן היו מתחברים, מצבו של חניבעל שהתדרדר אט אט היה עשוי להתהפך פלאים, וייתכן שרומא הייתה נופלת בסופו של דבר.
כקונסולים של אותה שנה נבחרו גאיוס קלאודיוס נרו ומרקוס ליוויוס סלינטור. נרו קיבל פיקוד על הכוחות שחנו בוונוסיה והוצב מול חניבעל. ליוויוס קיבל פיקוד על הכוחות בצפון איטליה מול עזרובעל. חניבעל ניסה להימלט מפני הצבא של נרו כדי לחבור אל אחיו בזמן. נרו ניסה למנוע זאת ותקף את חניבעל בקרב גרומנטום, שהסתיים ללא הכרעה, אולם עיכב את חניבעל בברוטיום. בינתיים, עזרובעל הגיע אל נהר מטאורוס ולאחר מכן שלח שליח לאחיו כדי להודיע לו על בואו. אולם השליח נתפס בדרך לחניבעל בידי אנשיו של נרו. זה האחרון ידע היטב שאם עזרובעל יחמוק מליוויוס ויחבור אל חניבעל יקיץ הקץ על רומא, ולפיכך החליט להפר את הוראות הסנאט שהורה לו לא לעזוב את ברוטיום, ולחבור אל ליוויוס החונה במטאורוס. נרו הצעיד את אנשיו רגלית מרחק גדול מאוד, והגיע בחסות החשיכה אל המחנה של ליוויוס. כעת הכוח הרומאי כלל 47,000 איש, והיה גדול יותר באופן משמעותי מהכוח הקרתגי. העובדה שיש כעת שני קונסולים במחנה ולא אחד, התגלתה לעזרובעל רק לפנות בוקר, כאשר שמע מהמחנה הרומאי שתי תרועות חצוצרה במקום אחת.
בחסות החשיכה ביצע עזרובעל נסיגה מסודרת צפונה לאורך הנהר, כשהוא מקווה לחצותו, וכך להימלט מהסכנה הרומאית, ולנסות שוב ליצור קשר עם חניבעל ממקום מבטחים, אולם בשל ההצפה של הנהר עקב גשמי האביב והמסת השלגים, לא הצליח למצוא מקום בטוח למעבר. הרומאים דלקו אחריו, תוך שהם מאלצים אותו לנהל את הקרב שממנו ביקש להימנע בשל נחיתותו המספרית. בנוסף על כך, רבים מחייליו הגאלים השתכרו במשך הלילה ותפקדו גרוע. בלית ברירה ערך עזרובעל את כוחותיו.
הקרב החל בהתקפה של האגף השמאלי הרומאי על האגף הימני הקרתגי. הפרשים הקרתגים ניגפו בפני אלו הרומאים, אולם המרכז והאגף הימני החזיקו מעמד היטב והמערכה החלה לנטות מעט לטובת עזרובעל. עם זאת, האגף הימני הרומאי בפיקודו של נרו הצליח לבצע תנועת איגוף ולתקוף את האגף הימני הקרתגי מאחור. האגף הימני התמוטט במהרה מול המתקפה המשולבת, וכעת המרכז הקרתגי כותר מכל צדדיו בידי הרומאים. את התבוסה השלימה מתקפה מוחצת של חיל הפרשים הרומאי, שהביס בהצלחה את חיל הפרשים הקרתגי. עזרובעל נהרג, וראשו הושלך אל מחנהו של חניבעל.

קרבות אחרונים

כקונסולים של שנת 206 לפנה"ס נבחרו לוקיוס וטורניוס פילון וקווינטוס קאיקולוס מטלוס. חניבעל נסוג אל ברוטיום, ולא גילה נטייה לצאת לקרב. שני הקונסולים מצדם גם הם לא השתוקקו לקרב והסתפקו בשמירה על חניבעל בתוך גבולות ברוטיום. מצב זה נמשך לאורך כל השנה.
כקונסולים של שנת 205 לפנה"ס נבחרו פובליוס קורנליוס סקיפיו ופובליוס ליקיניוס קראסוס דיבס. סקיפיו, על אף היותו צעיר יחסית, כבר הספיק לדכא ניסיון התקוממות לאחר קרב קאנאי, ולאחר מכן נשלח לנהל את הקרבות בהיספניה. במהלך קרבות אלו נחל סקיפיו הצלחה גדולה, ובשנה שקדמה לבחירתו כקונסול נכבש המעוז הקרתגי האחרון בחצי האי האיברי - גאדס. בנאומיו בסנאט, הציע סקיפיו שוב ושוב תוכנית שאפתנית, על פיה הוא יפלוש לאפריקה דרך סיציליה ויטיל איום על קרתגו עצמה. איום כזה, כך טען, הוא הדרך הבטוחה ביותר לסילוקו של חניבעל מחצי האי האפניני. עם זאת, פאביוס הקשיש התנגד לתוכנית זו, וסבר שאין להזניח את רומא עצמה. רבים נוספים מחברי הסנאט התנגדו לה, כיוון שקינאו בעוצמתם הרבה של בני משפחת סקיפיו. למרות זאת, סקיפיו קיבל אישור להפליג לסיציליה ולנסות להקים שם צבא מתאים לקראת הפלישה שתכנן.
עקב כיבוש היספניה בידי הרומאים, החליט מאגו ברקה, צעיר אחיו של חניבעל, להפליג אל חצי האי האפניני, לעזרת אחיו, עם הכוח הקרתגי שבפיקודו החונה באיים הבליאריים. מאגו נחת בהפתעה בליגוריה, וכבש ללא קרב כמעט את גנואה. אולם מסע המלחמה שלו מעולם לא צבר תאוצה כמו זה של שני אחיו. הוא ניסה להתאחד עם חניבעל, אך בקרב עמק הפו, כיתרו אותו ארבעה לגיונות רומאיים והוא נאלץ לעצור. אולם פרט לכך, הישגי הרומאים באותה שנה היו מצומצמים. סקיפיו הצליח בעזרת ספינותיו להדוף התקפה קרתגית על לוקרי, והקונסול קראסוס פלש לברוטיום. אולם אז פרצה מגפה קשה במחנהו של חניבעל, והמגפה פגעה קשות גם ברומאים. קראסוס נאלץ לעצור למנוחה ואפילו לא היה יכול לבוא לרומא ולהיות נוכח בקונסולאט של השנה הבאה.
כקונסולים של שנת 204 לפנה"ס נבחרו מרקוס קורנליוס קאתאגוס ופובליוס סמפרוניוס טודיטאנוס. על פי המנהג, חולקו ביניהם הלגיונות השונים. סמפרוניוס קיבל פיקוד על הלגיונות שהוצבו בברוטיום נגד חניבעל, וקורנליוס קיבל פיקוד על הלגיונות שהוצבו באטרוריה מול מאגו. האסטרטגיה של חניבעל נשענה באותה תקופה על מגננה על עיר הנמל קרוטון, שהייתה למעשה עיר הנמל האחרונה שנותרה לו. לאחר ששיירה של 100 ספינות שהיו אמורות להביא לו אספקה וכסף הושמדה, נאלץ חניבעל להתחיל לגבות מיסים גבוהים יותר מהאוכלוסייה המקומית. כמו כן, הוא גרש אזרחים שנחשדו בשיתוף פעולה עם רומא, והטיל עונשים על ערים ושבטים שלא היו נאמנים מספיק, מה שיצר נגדו התמרמרות רבה.
בקיץ של אותה שנה ניצח חניבעל את סמפרוניוס בקרב קטן ליד קרוטון. סמפרוניוס נמלט למחנהו, וחניבעל לא העז לתקוף אותו. סמפרוניוס, נחוש להשיב את כבודו העצמי הרמוס, התאחד עם צבאו של הפרוקונסול קראסוס, ובכוחות מתוגברים צעד אל שערי קרוטון. חניבעל יצא נגדו, אולם לא היה יכול לצבא המאוחד ונסוג אל קרוטון, כשהוא מותיר מאחוריו 4,000 הרוגים. סמפרוניוס לא ניצל את ניצחונו כדי להטיל מצור על קרוטון, והסתפק בכיבוש כמה עיירות בסביבה.

פינוי

כקונסולים של שנת 203 לפנה"ס נבחרו גנאיוס סרוויליוס קאיפיו וגאיוס סרוויליוס גמינוס. באותה שנה באה לקיצה המערכה בחצי האי האפניני באופן מפתיע. כאמור לעיל, המצביא הרומאי פובליוס קורנליוס סקיפיו תכנן לפלוש לאפריקה בשנת 205, אולם בשל חוסר תמיכה של הסנאט בוצעה הפלישה לבסוף רק בשנת 204 לפנה"ס. מטרת הפלישה הייתה להסיט את תשומת הלב של חניבעל מאיטליה אל מולדתו. סקיפיו ניצל במיומנות רבה את הסכסוכים בין ראשי השבטים הנומידים, והצליח לרכוש את לבו של המצביא הנומידי הצעיר מסיניסה. השניים הטילו מצור על העיר הקרתגית החשובה אוטיקה, אולם בקרתגו סירבו להזעיק את חניבעל, סירוב שהתברר כהרה אסון, לאחר שסקיפיו הביס את הצבא הקרתגי בקרב המישורים הגדולים. בלית ברירה הוחלט להזעיק את חניבעל מאיטליה. עוד לפני כן הוזעק חזרה צבאו של מאגו. הצבא עצמו הצליח להגיע אל אפריקה, אולם לא ברור גורלו של מאגו עצמו.
בחודש יולי של שנת 203 לפנה"ס עזב חניבעל במפתיע את איטליה. הוא חמק ממנה בעזרת צי שיצא מקרוטון בלי שהרומאים ירגישו בכך, והפליג עם צבאו חזרה אל אפריקה. הרומאים כבשו במהירות את כל מה שנותר מהאימפריה של חניבעל. לא ברור מה היה גודל הצבא שחניבעל חזר עמו. חסידיו של סקיפיו טוענים שמספרם הגיע ל-24,000, בעוד חסידי חניבעל מצמצמים את המספר לכדי 10,000. סוגיה נוספת היא מספר החיילים הוותיקים שהגיעו חזרה לאפריקה. חסידיו של חניבעל טוענים כי צבאו הורכב בעיקר מתושבים מקומיים מדרום-איטליה שגויסו או התנדבו לצבאו של חניבעל, ושרוב הצבא המקורי איתו פלש לאיטליה (ובמיוחד הפרשים הנומידיים) חדל מלהתקיים במהלך המערכה הממושכת שהוא ניהל בחצי האי האפניני. תומכיו של סקיפיו טוענים כי מספר החיילים הוותיקים שנותרו בצבאו של חניבעל היה גדול יותר.
כאשר חניבעל הגיע כבר היה חורף, ולפיכך דחו שני הצדדים את פעולות האיבה. עם בוא האביב של שנת 202 לפנה"ס הפרו הקרתגים את ההסכם, ובזזו ספינות אספקה רומאיות. בתחילת הקיץ ארגן סקיפיו פעולת תגמול גדולה, וצעד במהירות לכיוון הדרומטום, שם חנה חניבעל, כשהוא בוזז בדרכו את האזורים הכפריים של קרתגו. חניבעל התקדם גם הוא במהירות כדי לפגוש את סקיפיו. שני הצדדים נפגשו בסוף בעיר "זאמה רגיה", עיר בקרתגו על גבול נומידיה, שם התרחש קרב זאמה, שסיים את המלחמה. למרות זאת, חלק מהכוחות הקרתגיים שחנו בתחומי עמק הפו, שאז לא נכלל בתחום איטליה ולפיכך הסכם השלום לא חל עליהם, המשיכו במאבק עד שנת 197 לפנה"ס.