השירות בצבא הרומי נחשב זכות וחובה של כל אזרח רומאי. באותה תקופה היה מקובל שרק אזרחים בעלי רכוש מינימלי זכאים לשרת בצבא. היו לכך שתי סיבות: הראשונה, שבאותה תקופה היה מקובל שהחיילים רוכשים בעצמם את כלי הנשק, המזון והלבוש. והשנייה הייתה אמונה מקובלת שרק אזרחים שכבר יש להם רכוש יכולים לשרת באמת את המדינה. גיוס חובה הונהג רק לעיתים נדירות, אולם במהלך המלחמה הוא הופעל מספר פעמים בלית ברירה. החיילים חולקו ליחידה צבאית שנקראה לגיון. כל לגיון כלל 3,000 רגלים כבדים מעולים שנקראו לגיונרים, וכן 1,200 קלי נשק. מדי שנה גויסו 4 לגיונות ובנוסף על כך גויסו חיילים מקרב הערים בעלות הברית הלטיניות והאיטלקיות, כאשר הגיוס מהערים השתנה בהתאם לכוח האדם שלהן וצרכיה של רומא. בעלות הברית תרמו חילות עזר שהורכבו מחיילים מאיכות משתנה, בהתאם לאזור שממנו גויסו, ומספר חיילי בעלות הברית היה דומה למספר הרומאים ולעיתים אף עלה עליו. חילות העזר היו מגוונים הרבה יותר מהלגיונות, והם השלימו את יכולות הלגיונות בעזרת מיומנויות מקומיות שנשאו אנשיהם: חלקם היו לוחמי הרים מעולים, אחרים היו קשתים טובים, וכן הלאה. בנוסף לכך, תרמו בעלות הברית את החלק הגדול והאיכותי יותר של חיל הפרשים בצבא הרומי.
בניגוד לקרתגו, ברפובליקה הרומית לא הייתה הפרדה בין הדרג הפוליטי לפיקוד הצבאי. ראשי המדינה (הקונסולים) היו ראשי הצבא בפועל בשדה הקרב. כל שנה נבחרו שני קונסולים, וכל אחד מהם קיבל פרובינקיה מסוימת עם מינויו. הקונסול היה מקבל כוחות צבא לפי הצורך, בהתאם למיקום הפרובינקיה. צבא קונסולרי תקני כלל שני לגיונות רומאים וכוחות בעלות הברית, בסך הכול כ-20,000 רגלים וכ-2,000 פרשים. אם המצב דרש זאת, ניתן היה להכפיל את הכוח העומד לרשות הקונסול. לעיתים נדירות, התייצבו שני הקונסולים לקרב אחד בכוחות משולבים. אם שני הקונסולים היו נוכחים, היה הפיקוד נתון לאחד מהם לפי הטלת גורל יומית, או שהתחלף מדי יום: בימים הזוגיים פיקד אחד הקונסולים ובימים האי-זוגיים חברו.
הלגיון כלל ארבעה סוגי חיילים: וליטים, האסטאטים, פרינקיפים וטריאריים. הווליטים הגיעו לרוב מהשכבות העניות יותר, והיו צעירים יותר מרוב החיילים בצבא הרומי. הם חומשו בחרב קצרה שנקראה גלאדיוס, ומספר כידוני הטלה לשימוש חד פעמי. המיגון שלהם היה דל בהרבה משל רוב החיילים, ועל כן הם היו ניידים למדי. ההאסטאטים היו מוגנים טוב יותר מהווליטים. הם חומשו, כמו הווליטים, בגלאדיוס, וצוידו גם בהאסטה - חנית כבדה שנועדה לדקירה. הפרינקיפים היו מורכבים מאנשים אמידים יותר. הם היו מוגנים היטב וציודם כלל, בנוסף לגלאדיוס והחנית, גם מגן גדול. הטריאריים היו החיילים המבוגרים ביותר ובעלי האמצעים הרבים ביותר, ובהתאם לכך גם היו מוגנים בצורה הטובה ביותר.
הטקטיקה הרומאית.
בראשית ימיו של הצבא הרומי, הייתה טקטיקת הקרב הרומאית מבוססת על הפלנקס היווני. הרומאים למדו במהרה את חולשותיו של הפלנקס - חוסר גמישות, הקושי להיערך בקרקע לא שטוחה והקושי להתגונן כאשר הפלנקס מותקף מהאגפים. חולשות אלו הודגמו כאשר הצבא הרומי נאלץ להילחם בשבטים גאלים בהרי צפון איטליה. התורה החדשה שיושמה במהלך המלחמות נגד הסמניטים ומלחמת פירוס, הייתה מבוססת על יחידה צבאית חדשה שנקראה מאניפולוס. המאניפולוס הורכב מקבוצה הומוגנית של חיילים רגלים, בת 60 או 120 חיילים (כתלות בסוג החיילים). בכל מאניפולוס היו שני קצינים בדרגת שר מאה, מפקד וסגן. מאניפולוס בן 120 חיילים, נערכו לקרב בשש שורות בנות עשרים חיילים כל אחת. במאניפולוס של 60 חיילים, נערכו הלוחמים בשלוש שורות, כך שאורך המאניפולים היה זהה. כל מאניפולוס כלל שלושה סוגי חיילים. על האגפים הגנו 10 להקות בנות 30 פרשים כל אחת. בכל להקה היו שלושה דקוריונים מלפנים, שאחד מהם פיקד על הלהקה כולה, ושלושה אופטיונים מאחור.
בתחילת הקרב, נערך הלגיון כאשר בחזיתו שורת וליטים רציפה, ומאחוריה שלושה דרגים של רגלים כבדים, שכל אחד מהם כלל עשרה מאניפולים, העומדים זה לצד זה עם רווחים ביניהם. המאניפולים של הדרג השני והשלישי של הלגיון הוצבו מאחורי הרווחים במערך המאניפולים של הדרג שלפניהם, ויצרו תבנית של לוח שחמט. כאשר הגיע הלגיון לטווח מגע, נפתח הקרב: בתחילת הקרב הטילו הווליטים את כידוניהם, לאחר מכן הם נסוגו בין הרווחים של המאניפולים, והמשיכו להילחם בחרב. לדעת חלק מהחוקרים, לאחר הטלת הכידונים נסוגו הווליטים לאגפים. אחרי שהווליטים הטילו את כידוניהם, הטילו ההאסטאטים את חניתותיהם, ולאחר מכן נלחמו בחרבות. הפרינקיפים נלחמו מאחורי ההאסטאטים, ויכלו גם כן להטיל את כידוניהם מעל ראשי הלוחמים בקו הקדמי. הטריאריים נשארו מאחור והצטרפו לקרב רק במידת הצורך. לאחר הקרב, ערכו הרומאים בדרך כלל מרדף, שסייע להגדיל את אבדות הצד השני. חיל הפרשים הרומי היווה באופן מסורתי זרוע משנית ולא מפותחת בקרב הצבא הרומי, והוא גויס לרוב מקרב בעלות הברית. חולשה זו של הפרשים נחשפה היטב במהלך המלחמה, שכן כאשר התמוטטו הפרשים שהגנו על האגפים בידי פרשי העילית של חניבעל, התברר שהמאניפולוס אינו גמיש דיו, והמאניפולים בקו השני והשלישי לא הצליחו לרוב לבצע תפנית מהירה מספיק כדי להתגונן.
הפיקוד הרומאי.
הפיקוד העליון על הצבא נמסר לפוליטיקאי, לרוב בעל מאגיסטרטורה של פראיטור או קונסול או פרומגיסטראט (פרופראיטור ופרוקנוסול בהתאמה). לכן, פעמים רבות המצביא העליון היה חסר ניסיון פיקודי משמעותי, אם כי שירת בצבא במסגרת גיוס חובה. המצביא היה מאבד את האימפריום עם תום תקופת כהונתו. אף על פי שניסיון פיקודי לא היה תנאי הכרחי, פעמים רבות היו מגיסטראטים רומאים בכירים בעלי ניסיון צבאי ניכר. בדרך כלל הכהונה הייתה מוגבלת לשנה אחת (בתקופת היותו פראיטור או קונסול) ולשנה אחת נוספת במסגרת תפקיד של פרוקונסול, אך לעיתים הוארך המינוי לכמה שנים. הפרוקונסולים שהיו למעשה קונסולים או פראיטורים לשעבר, מונו על פי "החלטת הסנאט" ולא על–פי חוק מיוחד, ולכן, כמו פעולות אחרות של הסנאט הרומי, היו ניתנות לביטול על ידי אסיפות העם. במהלך המלחמה נעשה צעד חריג במסגרתו מונה "דיקטטור" שהקונסולים הוכפפו לו כאשר לצד הדיקטטור היה "מגיסטר אקוויטום" (תרגום מילולי: "אדון הסוסים", תרגום חופשי: "מפקד הפרשים"), ששימש למעשה כסגן הדיקטטור וייעץ לו.
על הלגיון פיקדו במשותף שישה טריבונים צבאיים, שמונו בידי אספת העם, נדרשו לוותק צבאי של חמש שנים לפחות, וכיהנו למשך חודשיים. הטריבונים שימשו בעיקר בתפקידי מטה, שימשו כעוזרי הקונסול, והיו אחראים על המשמעת בלגיון, לפעמים הם שימשו גם כמפקדים ישירים של חלקים מלגיון, מיחידות בסדר גודל קוהורטה ומעלה. הלגיון חולק לקנטוריות, שכללו לרוב בין 100 ל-80 חיילים. על כל קנטוריה פיקד "קנטוריון" (שר מאה). בתחומי אחריותו של הקנטוריון היו ענייני השגרה של החיילים: לאמן אותם לקרב, ולוודא שהם שומרים על הציוד שלהם במצב תקין ומקפידים על משמעת. לקנטוריון הייתה סמכות שיפוט על חייליו במקרים של עברות פעוטות והוא יכול היה להטיל עונשים גופניים. על הפרשים פיקדו ה"דקוריונים", שכל אחד מהם פיקד על "טורמה" (להקה) בת 30 פרשים.
שרשרת הפיקוד המסודרת אפשרה מקצועיות רבה וביצוע יעיל של הפקודות שניתנו על ידי הפיקוד הגבוה. יתרה מכך, הקצונה המקצועית בדמותם של הקנטוריונים אפשרה לגייס לגיונות חדשים ולאמנם תוך כדי המלחמה ובכך לדאוג להזרמה מתמדת של כוח אדם איכותי לצבא שהתדלדל בקרבות. עם זאת, מקרה יוצא דופן היה קרב סילארוס, שבו פיקד על הצבא הרומאי מרקוס קנטיניוס פנולה, שלא החזיק בשום תפקיד רשמי והוביל צבא של מתנדבים.
קרתגו.
צבא קרתגו.
מרבית החיילים בצבא קרתגו היו שכירי חרב זרים, ורק הקצונה וחלק מחיל הפרשים באו מקרב אזרחי קרתגו. הקרתגנים גייסו לרוב ללא הבחנה את כל אלו שביקשו להתגייס לצבאם. אחת הסיבות לכך שחניבעל נחשב לאחד המצביאים הגדולים בהיסטוריה, היא יכולתו לשלוט על המרכיבים המגוונים של צבאו בכוח אישיותו, לנצל את היתרונות של כל אחד מהם, ולהפוך אותם לצבא מלוכד וממושמע. לא ידוע על מרידות בצבאו. היחידות בצבא קרתגו הופרדו לרוב לפי מוצאם, וחומשו לרוב בנשק שהביאו עמם מארצותיהם, אם כי יש רמזים לכך שאת הסוסים סיפקו הקרתגים. בהמשך חימש חניבעל את חייליו בנשק שנלקח שלל מהרומאים.
בתחילת מסעו של חניבעל לאיטליה, צבאו הורכב בעיקר מחיילים שגויסו מהיספניה. חיילים אלה התחלקו לשלוש קבוצות עיקריות: קלטים, איברים, ובני תערובת שנקראו קלטיברים. הקלטים היו גבוהי קומה לרוב, והתחמשו בחרבות פלקטה ארוכות ומעוקלות מעט. האיברים חומשו גם הם בחרבות אלו, והוסיפו להן גם כידוני הטלה. הרגלים האיבריים נערכו לקרב במבנה צפוף בצמוד אחד לשני. הפרשים ההיספנים היו מעולים, אם כי לרוב פחות ממושמעים.
מרכיבים חשובים נוספים בצבא הקרתגי היו הקלעים הבליארים, וכן החיילים הלובים. אלו האחרונים היו מוגנים בשריון עור כבד, וכן כידוני הטלה, חרבות קצרות ומגנים קלים. בהמשך שולבו חיילים גאלים בצבא. הללו היו חמושים בחרב ארוכה שנועדה בעיקר לשיסוף, וכן מגן גדול.
אחד המרכיבים החשובים ביותר בצבאו של חניבעל היו הפרשים בני נומידיה, שנודעו כפרשים איכותיים במיוחד. הם רכבו על סוסים ללא רסן או אוכף ולרוב השליכו כידוני הטלה תוך כדי דהירה. הם נעזרו גם בחרבות קצרות ומגן קל. הם לא הוגנו בשריון וחלקם עטו עורות של בעלי חיים כגון נמרים. כמו כן, נעזר חניבעל בפרשים בני תערובת שנודעו בשם לובי-פיניקים. הללו היו בני תערובת קרתגים-ברברים ונודעו כפרשים טובים מהקרתגים המקוריים. הם היו חמושים במגנים עגולים וחניתות.