חניבעל
המלחמה הפונית השנייה > קרב זאמה וסיום המלחמה

חניבעל וסקיפיו ניסו בתחילה לפתור את העניין בדרכי שלום, וערכו מפגש בזאמה. ליוויוס מתאר בהרחבה את המפגש ההיסטורי ביניהם, ומתאר בהרחבה את נאומיו המתרפסים של חניבעל. ככל הנראה ישנה הגזמה רבה בתיאורים אילו. סקיפיו דרש את החזרת כל שבויי המלחמה והעריקים הרומאים, הכרה בשליטה הרומאית בהיספניה, סיציליה, סרדיניה, קורסיקה, והאיים הבליארים, והכרה במסיניסה כמלך נומידיה כולה. כמו כן דרשו הרומאים את הסגרת כל הצי המלחמתי הקרתגי, וצמצומו לכדי 20 ספינות בלבד. על קרתגו ייאסר לפתוח במלחמה על רומא, והיא תשלם קנס של 5,000 טלנטים. תנאים אלו היו סבירים ולא היו אמורים למוטט יותר מדי את כלכלת קרתגו, אולם חניבעל הסכים לכל התנאים פרט לפירוק הצי והסגרת העריקים. הדבר שם קץ למשא ומתן, כיוון שמלכתחילה הסכים סקיפיו לשלום רק אם חניבעל יציע יותר, והוא הציע פחות.
ליד זאמה התכנסו צבאותיהם של סקיפיו וחניבעל לקרב הכרעה אחרון, שיקבע את עתיד המלחמה. היקף הצבאות שלקחו חלק בקרב אינו ברור כל צורכו. לטענת חלק מהחוקרים המצדדים בסקיפיו, לחניבעל היו בין 50,000 ל-55,000 חיילים רגליים, בין 3,000 ל-6,000 פרשים – חלקם לובי-פיניקים וחלקם נומידים, וכן 80 פילים. לעומתו, היו לסקיפיו קצת פחות מ-35,000 רגליים, ובין 5,500 ל-9,000 פרשים. לדעת החוקרים המצדדים בחניבעל, כלל צבאו בין 35,000 ל-40,000 רגליים בלבד.
על כל פנים, העובדות הברורות הן שלחניבעל היה יתרון בחיילים רגליים ולסקיפיו יתרון בפרשים. חניבעל החליט לחרוג ממנהגו הרגיל להציב את כל החיילים בחזית אחת, וחילק אותם לשלושה קווים. בקו הראשון הוצבו שכירי חרב מגאליה ומליגוריה, וקלעים מהאיים הבלאריים, שגויסו על ידי אחיו מאגו (מאגו עצמו מת מפצעיו בדרכו לאפריקה). בקו השני הוצבו חיילים רגליים בעלי חימוש כבד יותר, רובם טירונים שגויסו מקרתגו ומלוב, ואילו בקו האחרון הוחזקו ותיקי המלחמה מאיטליה, שרידי צבאו המקורי של חניבעל. לא ברור מדוע בחר להיערך באופן הזה. ייתכן שחניבעל לא בטח בטירונים החדשים שגייס, והשתמש בהם רק כ"בשר תותחים" עבור החיילים הוותיקים מאיטליה, אותם שמר רעננים לשלב המכריע. את הפרשים הלובי-פיניקים ערך באגף אחד, את הנומידים באגף שני, ואת הפילים ערך מקדימה. סקיפיו מצידו ערך גם הוא את חייליו בשלושה קווים. את הפרשים הנומידים הציב באגף השמאלי והפקיד עליהם את מסיניסה, ואת הפרשים הלטינים שגויסו מקרב בעלות הברית הציב באגף הימני והפקיד עליהם את גאיוס ליליוס. תוכניתו של סקיפיו דמתה למעשה לתוכניתו של חניבעל בקרב קאנאי, ריתוק חיל הרגלים, בו בזמן שחיל הפרשים הרומאי-נומידי החזק יאגף את חיל הרגלים הקרתגי ויביס אותו. חניבעל שהיה מנוסה באסטרטגיות מעין אלו, הבין היטב שהסיכוי היחיד שלו לנצח בקרב יהיה אם יצליח בעזרת חיל הרגלים העדיף שלו להביס את חיל הרגלים הרומאי, לפני שחיל הפרשים יסיים את מלאכתו.
הקרב התרחש ב-19 באוקטובר, שנת 202. חניבעל פתח אותו בהסתערות שמונים פיליו, אולם אז קרה דבר בלתי צפוי, ורווחים נפערו לקראתם במערך הרומאי. הפילים שאומנו לבצע הסתערות אחת מהירה התבלבלו, והרומאים הטילו בהם כידונים ותקעו בחצוצרות. הפילים נבהלו ונמלטו לאחור, רומסים בני ברית ואויבים כאחד. לאחר מכן התנגש הקו הקרתגי הראשון עם הקו הרומאי הראשון. לקרתגים היו פקודות ברורות מאוד, לא לשבור את הקווים בשום מחיר. סקיפיו לעומת זאת התגמש יותר בעניין זה.
בתחילה הדפו הקרתגים את אויביהם לאחור, אולם אז תוגבר הקו הרומאי הראשון, בחיילים שהובאו מהקו השני. הקו הקרתגי הראשון הובס, וחייליו נסוגו לאחור בתקווה למצוא מקלט מאחרי הקו הקרתגי השני, אך החיילים בקו השני לא איפשרו להם לעבור דרכם, מחשש שאם יפתחו את שורותיהם, הדבר ישבש את מערכם ויאפשר לרומאים הרודפים להבקיע דרכם. חלק מהנמלטים הנואשים ניסו להבקיע לעצמם דרך בלחימה, והשאר פנו ימינה ושמאלה והגדילו את רוחב החזית הקרתגית. כעת קידם חניבעל את הקו השני, אך גורלו דמה לזה של הקו הראשון וסקיפיו הביס גם אותו. אז קידם חניבעל את הקו השלישי, שהיה כאמור מורכב מחיילים ותיקים מנוסים ורעננים שעדיין לא השתתפו בלחימה. סקיפיו שבר את שלושת הקווים ויצר מהם קו אחד, אולם חייליו הרעננים של חניבעל שנהנו גם מיתרון מספרי הצליחו להדוף אותם. נראה היה שהקרב יוכרע לטובת הקרתגים, אולם אז הופיעו הפרשים הנומידים והלטינים בעורף צבאו של חניבעל, והכריעו את הקרב, שהסתיים בניצחון מוחץ לסקיפיו.