על הלגיון פיקדו במשותף שישה טריבונים צבאיים, שמונו בידי אספת העם, נדרשו לוותק צבאי של חמש שנים לפחות, וכיהנו למשך חודשיים. הטריבונים שימשו בעיקר בתפקידי מטה, שימשו כעוזרי הקונסול, והיו אחראים על המשמעת בלגיון, לפעמים הם שימשו גם כמפקדים ישירים של חלקים מלגיון, מיחידות בסדר גודל קוהורטה ומעלה. הלגיון חולק לקנטוריות, שכללו לרוב בין 100 ל-80 חיילים. על כל קנטוריה פיקד "קנטוריון" (שר מאה). בתחומי אחריותו של הקנטוריון היו ענייני השגרה של החיילים: לאמן אותם לקרב, ולוודא שהם שומרים על הציוד שלהם במצב תקין ומקפידים על משמעת. לקנטוריון הייתה סמכות שיפוט על חייליו במקרים של עברות פעוטות והוא יכול היה להטיל עונשים גופניים. על הפרשים פיקדו ה"דקוריונים", שכל אחד מהם פיקד על "טורמה" (להקה) בת 30 פרשים.
שרשרת הפיקוד המסודרת אפשרה מקצועיות רבה וביצוע יעיל של הפקודות שניתנו על ידי הפיקוד הגבוה. יתרה מכך, הקצונה המקצועית בדמותם של הקנטוריונים אפשרה לגייס לגיונות חדשים ולאמנם תוך כדי המלחמה ובכך לדאוג להזרמה מתמדת של כוח אדם איכותי לצבא שהתדלדל בקרבות. עם זאת, מקרה יוצא דופן היה קרב סילארוס, שבו פיקד על הצבא הרומאי מרקוס קנטיניוס פנולה, שלא החזיק בשום תפקיד רשמי והוביל צבא של מתנדבים.
קרתגו.
צבא קרתגו.
מרבית החיילים בצבא קרתגו היו שכירי חרב זרים, ורק הקצונה וחלק מחיל הפרשים היו קרתגים. הקרתגים גייסו לרוב ללא הבחנה את כל אלו שביקשו להתגייס לצבאם. אחד הדברים ההופכים את חניבעל לאחד המצביאים הגדולים בהיסטוריה, היא העובדה שהוא הצליח להשתלט על ערב רב זה ולהופכו לצבא מלוכד, ולא ידוע על מרידות בצבאו. היחידות בצבא קרתגו הופרדו לרוב לפי מוצאם, וחומשו לרוב בנשק שהביאו עמם מארצותיהם, אם כי יש רמזים לכך שאת הסוסים סיפקו הקרתגים. בהמשך חימש חניבעל את חייליו בנשק שנלקח שלל מהרומאים.
בתחילת המסע כלל מרבית הצבא חיילים מהיספניה, הארץ שבה חניבעל גדל והתחנך, ולפיכך בטח בהם לרוב יותר מאשר החיילים האחרים. חיילים אלה התחלקו לשלוש קבוצות עיקריות: קלטים, איברים, ובני תערובת שנקראו קלטיברים. הקלטים היו גבוהי קומה לרוב, והתחמשו בחרבות פלקטה ארוכות ומעוקלות מעט. האיברים חומשו גם הם בחרבות אלו, והוסיפו להן גם כידוני הטלה. האיברים הרגליים נפרשו במבנה אחיד בצמוד אחד לשני. הפרשים ההיספנים היו מעולים, אם כי לרוב פחות ממושמעים.
מרכיבים חשובים נוספים בצבא הקרתגי היו הקלעים הבליארים, וכן חיילים לובים קלים, שהצטיידו בכידוני הטלה, חרבות קצרות ומגנים קלים. יחידות לוביות אחרות תפקדו כחי"ר הכבד בצבא חניבעל, וחומשו בתחילה בדומה להופליט היווני, ומאוחר יותר אימצו את החימוש הרומי. בהמשך שולבו גאלים רבים בצבא. הללו היו חמושים בחרב ארוכה שנועדה בעיקר לשיסוף, וכן מגן גדול.
אחד המרכיבים החשובים ביותר בצבאו של חניבעל היו הפרשים בני נומידיה, שנודעו כפרשים איכותיים במיוחד. הם רכבו על סוסים ללא רסן או אוכף ולרוב השליכו כידוני הטלה תוך כדי דהירה. הם נעזרו גם בחרבות קצרות ומגן קל. הם לא הוגנו בשריון וחלקם עטו עורות של בעלי חיים כגון נמרים. כמו כן, נעזר חניבעל בפרשים בני תערובת שנודעו בשם לובי-פיניקים. הללו היו בני תערובת קרתגים-ברברים ונודעו כפרשים טובים מהקרתגים המקוריים. הם היו חמושים במגנים עגולים וחניתות.
חניבעל הביא עמו לאיטליה כ-50 פילי מלחמה. במהלך המסע מתו רובם, ועד קרב טרביה שרדו רק מעטים מהם. הקרתגים השתמשו לרוב בפילים מזן פיל צפון אפריקני. פילים אלו היו קטנים יותר מהפילים האסייתיים, אם כי אוזניהם היו גדולות יותר וגבם קעור. גובהם היה 2.5 מטר והם היו כנועים ונוחים לאילוף. משקלם היה כמעט 6 טון, והם נשאו על גבם מגדל שבתוכו ישבו שניים או שלושה אנשים, שהיו בעיקר קשתים או מטילי כידונים. מלבד זאת, היה גם נהג שכיוון את הפיל. במקרה שהפיל איבד שליטה, נהגו הקרתגים לתקוע גרזן או אזמל בין עיניו. לעיתים נדירות השתמשו הקרתגים גם בפילים אסייתיים גדולים יותר אך קשים לשליטה.
הפיקוד הקרתגי.
בדומה לרומא, גם בני קרתגו בחרו את מנהיגיהם, אך אלו נשארו בקרתגו ולא יצאו למערכות. הפיקוד היה נתון בידיו של מצביא שקיבל רק הוראות כלליות ביותר מקרתגו, והיה חופשי, למעשה, לפעול בכל דרך שימצא לנכון. במלחמה זו היה הפיקוד העליון בזירה האפנינית ובהמשך גם בזירה האפריקנית בידי חניבעל. בזירה האיברית נשלטה גם כן בידי בני משפחת ברקה. במהלך רוב המלחמה פיקדו על הכוחות הקרתגיים בזירה אחיו של חניבעל עזרובעל ומאגו, אולם בהמשך הצטרף אליהם גם עזרובעל בן גיסקו. מרבית המפקדים בצבא הקרתגי היו פונים, אולם קצינים אחרים כגון מהרבעל היו נומידים.
מהלך המלחמה.
תוכניות.
רומא העריכה שלא תתקשה לנצח את קרתגו ולכן גייסה רק חמישה לגיונות: אחד בפיקודו של לוקיוס מאנליוס הושאר בצפון איטליה, שניים נמסרו לקונסול פובליוס קורנליוס סקיפיו (האב) ויועדו לכיבוש ספרד, והשניים הנותרים נמסרו לקונסול טיבריוס סמפרוניוס לונגוס שנשלח לסיציליה עם 100 אוניות ונועד להעביר, בהמשך המלחמה, את המלחמה לאפריקה עצמה. רומא סברה כי אין דחיפות רבה לתקיפת קרתגו ומושבותיה, ועל כן התנהל ארגון הכוחות בעצלתיים ומסעי ההתקפה לא הספיקו לצאת אל הפועל.
חניבעל לעומת זאת לא בזבז זמן, ולאחר כיבוש סגונטום החל בהכנות לפלישה לאיטליה. הוא גייס צבא גדול מקרב השבטים הספרדיים והאפריקאיים, אימן את צבאו בשיטה המאניפולארית במקום בשיטת הפלנקס, שלח את חייליו לחופשה בביתם והודיע לחייליו להתכונן למסע ארוך. מספר חייליו של חניבעל לא ברור, אך ככל הנראה עמד על כ-120,000 רגלים, 16,000 פרשים וכמה עשרות פילי קרב. חניבעל שלח כמעט 20,000 חיילים ו-2,000 פרשים להגנת אפריקה, וכ-20,000 חיילים, 3,000 פרשים וכ-20 פילים הותיר בספרד בפיקוד אחיו, עזרובעל. את עיקר הכוח שמנה כ-90,000 חיילים ו-12,000 פרשים לקח חניבעל תחת פיקודו, חצה איתם את נהר האברו ובאביב 218 לפנה"ס יצא למסע אל איטליה, דרך גאליה.
המסע לאיטליה.
חניבעל חצה את האברו וכבש שטחים נרחבים מצפון לו. להגנתם, השאיר את חנו הגדול עם חלק מהכוח, והוא המשיך עם השאר דרך גאליה, לאיטליה.
ליד נהר הרון בצרפת נתקל חניבעל בשבטים ברברים עוינים שלא אפשרו לו לחצות את הנהר. הוא איגף אותם מאחור, הכה אותם והעביר את צבאו את הנהר. השמועה על הקרב ליד הרון הגיעה אל סקיפיו, שהיה בדרכו לספרד. הוא החליט לשלוח לספרד את אחיו, גנאיוס, ולחזור בעצמו לאיטליה, לחכות שם לחניבעל. חניבעל המשיך הלאה אל הרי האלפים תוך התמודדות עם שבטי ברברים. כאשר הגיע חניבעל מתחת להרי האלפים התערב חניבעל בסכסוך בין שבטים וזכה בעזרת השבט המנצח. לאחר מכן חצה את הרי האלפים בראש צבאו, אל איטליה. תוך כדי מעבר ההרים התמודד צבאו של חניבעל עם סופות שלגים מוקדמות, עליות ומורדות קשים ומסוכנים, חוסר אספקה והתקפות חוזרות ונשנות של שבטי הגאלים המקומיים, שהיו עוינים כלפיו. לבסוף נחת חניבעל בצפון איטליה לאחר חמישה חודשי מסע, עם כ-20,000 רגלים ו-6,000 פרשים.
הלחימה באיטליה.
מבחינת הרומאים, המלחמה הגיעה לאיטליה במפתיע. לאחר נחיתתו בעמק הפו נתן חניבעל לצבאו מנוחה והחל בגיוס השבטים הגאלים באזור. הוא היה זקוק לניצחון על הרומאים כדי שכל השבטים הגאלים יצטרפו אליו, וקיבל אותו לאחר היתקלותו עם סקיפיו בקרב טיקינוס. לאחר גיוס שבטי הגאלים התקדם חניבעל דרומה, וחנה מול המחנה הרומאי ליד נהר הטרביה. באותו החורף (218 לפנה"ס) ניצח חניבעל בקרב טרביה את הרומאים בראשות הקונסול טיבריוס סמפרוניוס לונגוס, ודרכו אל דרום איטליה הייתה פתוחה. בשנה שלאחר מכן ניסו הקונסולים החדשים, גאיוס פלאמיניוס וגנאיוס סרוויליוס גמינוס, לבלום את התקדמות חניבעל באיטליה, אלא שחניבעל שוב הערים עליהם, הכין לפלאמיניוס מארב ליד אגם טראסימנו והכה אותו בקרב טראסימני.
בעקבות ההפסדים מונה בשנת 217 לפנה"ס פאביוס מאקסימוס לדיקטטור. הוא הציע אסטרטגיה חלופית: מלחמת התשה במקום קרב הכרעה שבו עלול חניבעל לנצל את כישרונו הטקטי. ברומא התנגדו לאסטרטגיה הפביאנית מכיוון שהרעיון היה זר למנטליות הרומית ומשום ששיטה זו לא מנעה מחניבעל לבזוז את שדות איטליה. לאחר שחניבעל הערים על פאביוס מאקסימוס פעם אחת החריפה ההתנגדות אליו ברומא והוחלט למנות בשנה הבאה (216 לפנה"ס) שוב קונסולים. באותה שנה נבחרו אמיליוס פאולוס וטרנטיוס וארו, הם גייסו צבא גדול, כ-80,000 איש, כדי להתמודד עם חניבעל בקרב קאנאי. בתרגיל מבריק הצליח חניבעל להכות את הצבא הרומאי ולהשמיד אותו.
בגלל ההפסד ערקו חלק ניכר מבעלות בריתן בדרום איטליה למחנה הקרתגי ורומא הייתה נתונה בסכנה ממשית, אבל מסיבה לא ברורה לא עלה חניבעל על רומא לאחר קרב קאנאי. בעקבות תבוסתם חזרו הרומאים לאסטרטגיה הפביאנית, נמנעו מקרב הכרעה נגד חניבעל ובמקום זאת זינבו בחייליו, תקפו את קציניו ואת בעלי בריתו. המלחמה בחצי האי האיברי, בסיציליה והמלחמה המאקדונית הראשונה מנעו מחניבעל תגבורות חיוניות כי הן הוסטו לזירות האלה. כל זאת גרם לכך שבשנת 211 לפנה"ס, לאחר המצור על קאפואה, שוב הייתה רומא השליטה באיטליה, ולא חניבעל. בהמשך המלחמה צמצמו הרומאים יותר ויותר את שטח שליטתו של חניבעל ובסוף הלחימה בזירה האיטלקית נותרו לו מעט בסיסים בברוטיום ותו לא.