עם תום השנה ותחילת שנת 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 לפנה"ס נבחרו מרקלוס (פעם חמישית ואחרונה בחייו) וטיטוס קווינטיוס קריספינוס. השניים חנו באזור טראנטום והטילו מצור על לוקרי. הם נהגו בחוסר זהירות וחניבעל הצליח להניס אותם משם. קווינטיוס התאחד עם צבאו של מרקלוס, אולם כאשר השניים יצאו לסיור שגרתי מלווים בקומץ פרשים, הם נפלו למארב קרתגי מתוכנן היטב. מרקלוס נהרג ועמיתו נפצע קשה. חניבעל לקח כשלל את החותמת של מרקלוס, וניסה לנצל אותה כדי לכבוש מחדש את סלאפיה. הוא כתב איגרת וחתם עליה בשם מרקלוס. באיגרת הוא הורה על החלפת חיל המצב הרומאי בעיר. הוא הלביש קבוצת לוחמים דוברי לטינית במדי הצבא הרומאי, ושלח אותם לעיר, אולם קווינטיוס, שהכיר את הטקטיקות החביבות על חניבעל, הזהיר מראש את מפקדי חילות המצב שמרקלוס מת. מפקד חיל המצב של סלאפיה נתן לחיילי חניבעל להיכנס לעיר ולאחר מכן טבח בהם.
מותו של עזרובעל.