ük başarılarla kesin ve hızlı neticeye ulaşamayacaklarını söylüyordu. Senato onu imperium (ordu komutanı, baş komutan) olarak atadı. Fabius ve Minicus ordu yönetimini aralarında paylaştılar. Minucius birlikleri ile Geronium bölgesinde Hannibal’a pusu atacak, Fabius ise daha büyük güçlerle kesin sonuç almak için savaşacaktı. Minicus, Fabius’un önderliğini kabul etti ve politik çatışma da böylece engellenmiş oldu.

Fabius Roma’da popüler olamadı, taktikleri hızlı ve sonuca götürücü değildi. Roma halkı arasında kendisine conculator(oyalayıcı) lakabı takılmıştı, MÖ 216 yılındaki seçimlerde yeni konsüller Gaius Terentius Varro ve Lucius Aemilius Paullus, daha saldırgan bir savaş stratejisini benimsiyorlardı. MÖ 217’deki seferinde Hannibal İtalikleri kendi yanına çekmeye çalışıyordu fakat başarılı olamadı. MÖ 216 baharında, Apulia düzlüklerindeki önemli bir ikmal ve malzeme deposu olan Cannae üzerine saldırıp burayı ele geçirmeyi amaçlıyordu. Cannae, Roma için önemli bir noktaydı ve Roma Senatosu, sayısı iki kat arttırılmış bir orduyla Varro ve Aemilius Paullus’un önderliğinde sayısı 100,000’i bulan bir gücü Cannae’ye göndermeye karar verdi.

Cannae Muharebesi MÖ 216'da başladı. Kartaca süvarileri (Galya ve İberyalılardan oluşuyordu) küçük orandaki Romalı süvarilerine saldırdı, Roma’nın sağ kanadını koruyan Latin süvarileri sayı ve nitelik olarak azdı ve kısa sürede imha edildiler. Serbest kalan Kartaca süvarileri Roma piyadelerine arkadan saldırdı. Kartaca süvarilerinin üstünlüğünü kanıtlayan bu olaydan sonra Roma Devleti uzun bir süre İtalyan olmayan müttefiklere süvari bölüğünü teslim etmedi.

Konsüller Aemilius Paullus ve Apulia üzerine yürüyen Hannibal’ın önünü kesmeye karar verdiler. İki günlük yürüyüşten sonra Aufidus Nehri’nin soluna, ana kampa 10 km uzaklıktaki bölgeye yerleştiler. Hannibal, Varno’nun şevkini kendi çıkarlarına kullanmak istiyordu. Kendisine sadık az sayıda piyadeyi merkeze Libyalılardan oluşan paralı askeri süvarileri de kanatlara yerleştirerek yarım daire biçiminde savaş düzeni aldı. Hannibal ve sol kanadın komutanı kardeşi Hadsrubal şiddetli süvari saldırısıyla Roma ordusunun sağ ve sol kanatlarını bozarak Roma ordusunu kaçmalarına müsaade etmeden kuşattı ve imha etti. Güvenilir kaynaklara göre Cannae’de 50 – 70 bin asker ölmüş veya esir alınmıştı.

Polybius notlarında, "Cannae bozgunu çok ciddi bir olaydı, Roma’nın müttefikleri arasında o güne kadar sadık kalanlar bile Roma’nın gücünden şüphe duymaya ve tercihlerini sorgulamaya başlamışlardı." der. Aynı yıllarda, Sicilya’daki Yunan şehirleri de Roma’nın siyasi otoritesine karşı başkaldırdılar, Makedonya Kralı V. Philip Hannibal’ın yanına geçerek Roma’ya karşı Birinci Makedonya Savaşı’nı başlattı. Hannibal daha sonra Sirakuza’nın yeni kralı Hieronymous’u kendi saflarına çekti ve Tarentum civarına geldi. Hannibal şimdi Roma üzerine saldırabilmek için yeterli silah ve insan gücüne gereksinim duyuyordu. Kesin olmamakla birlikte bir saldırı ve büyük bir anlaşmaya gitmeyi düşünüyordu. Fakat Roma’nın tekrar toparlanması ve fırsatın kaçmasından kaygılandı. Hannibal İtalya’nın en büyük ikinci kenti Capua’yı ele geçirdi ve yeni üssü yaptı. Burada birkaç İtalyan şehir devleti dışında müttefik kazanamadı ve ayrıca Makedon donanması’da ona yardım getirecek kapasitede değildi.

Hannibal Roma’ya barış için bir elçilik heyeti gönderdi ve savaş esirlerini fidye karşılığında bırakabileceğini Roma’ya iletti. Fakat Roma bunu reddetti.

Cannae muharebesi sonrası Güney İtalya’da Hannibal müttefikleriyle ilişkisini arttırmıştır: Hannibal, Apulia’nın kasabaları Salapia, Arpi ve Herdonia’ı aldı. Mago ayrı bir ordu ile güney İtalya’ya yürürken antik İtalyan kabilesi Bruttilerde birkaç hafta içinde ona katıldı. Aynı zamanda Hannibal’da ordusunun Samnit kabilelerinin katılımıyla güçlendirdi. İtalya yarımadasının en büyük ikinci şehrinin üs olarak kullanan Hannibal MÖ 216 yılında buradan Campania üzerine yürüdü. Capua halkı alt sınıftaki Roma vatandaşlarından oluşuyordu Hannibal onları evlilik, dostluk ve Roma’nın başına gelen felaketler gibi bağlantıları kullanarak yanına çekti. Capua halkı ile bir anlaşma yapan Hannibal, onlara dostluk şartlarına uymak zorunda olmadıklarını fakat limandan gelecek Kartaca takviye kuvvetlerine zorluk çıkartmamalarını istedi. Bu müttefik kazanma sistemiyle Hannibal MÖ 215 yılına gelindiğinde Güney İtalya’nın büyük bir bölümünü kazanmıştı. Sahil boyunca uzanan Yunan şehirleri, Regium ve Latin kolonileri Beneventum, Luceria Samnium, Venusia, Brundisium, Paestum ve Kuzey İtalya’daki bağımsız Galya Roma kontrolünde değildi.

Hannibal kurduğu bu müttefik ağı ile muazzam bir askeri başarı kazanmıştı. Önemli bir şehir olan Nola ve Roma kalesi Campania’yi ele geçirerek önemli bir destek bağlantısı kurmuştu. Daha önce üç kez kuşattığı ve saldırdığı Nola’yı alamamıştı fakat bu kez çevredeki önemli şehirleri ele geçirerek amacına ulaştı.

İtalya Yarımadası ile direk bağlantı kurulan yer Sicilya Adasıydı. Deniz yollu gelecek yardımların güvenliğini sağlayabilecek şehir Lylabeum ise Roma’nın elindeydi. Hannibal eski roma müttefiki Siraküza Kralı’nın yerine geçen destekledi ona iki general gönderdi. Romalılar Sirakuza’yı kuşattı ve iki yıllık kuşatma sonrası Sirakuzalıları yendiler. Arşimet’te şehrin düşüşünden sonra Romalı bir asker tarafından öldürüldü.

Hannibal ana saldırılarında İtalya içindeki yerel halkı asker olarak kullanıyordu. Hanno, Saminium’daki asker sayısını arttırmayı amaçlıyordu fakat yollarını kesen Romalılarca Beneventum Muharebesine girdiler. (MÖ 214) ve ordu Hannibal’a ulaşmadan imha edildi. Hannibal müttefikleri kazanmasına rağmen hala Roma karşısında sayısal eşitliği yakalayamamıştı. Bu durum ciddi bir problemdi.

İber yarımdasında, Scipio kardeşler 20,000 Kelt paralı asker ve takviye olarak 30 bin piyade ve 3 bin süvari bulunduruyordu. Kartaca ordusu ise Hadsrubal Barca önderliğinde 15 bin, Hadsrubal Gisco önderliğinde 10 binlik bir kuvvet bulunuyordu. Scipio kardeşler iki ayrı birliği ayrı ayrı saldırmayı planladılar ve ilk olarak Hadsrubal Barca üzerine iki lejyon ve paralı askerlerden oluşan birlikle yürüdüler. Yapılan iki büyük muharebede Hadsrubal’ın rüşvetiyle pek çok Roma askeri savaşmadan geri döndü ve zafer Kartacalıların oldu.

Romalılar geri çekildiler ve Kartacalıları yarımadadan atamadılar. Bunun üzerine seçkin Romalı askerler mağlubiyetin sorumlusu iki komutanı öldürdüler. Bu şimdiye kadar Kartacalılar ve Helenlerde görülen bir uygulamaydı.

MÖ 210 yılında Scipio Africanus senato kararıyla babası ve amcasının öcünü almak için İber Yarımadası’na geldi.

Parlak bir saldırıyla Kartacalıların önemli bir kalesi olan Yeni Kartaca şehrini ele geçirdi. (MÖ 209) Fakat yine de Hadsrubal’ın İtalya içinde ilerleyen kardeşi Hannibal’a takviye göndermesini engelleyemedi.

İlipa Muharebesi’nde (MÖ 206), Scipio, Mago Barca, Hasdrubal Gisgo ve Masinissa komutası altındaki birleşik Kartaca ordusunu kesin bir bozguna uğrattı ve İber Yarımadasında Kartaca hakimiyeti sona erdi.

MÖ 212 yılında Kartacalılar İtalya yarımadasının en büyük Yunan şehri Tarentum üzerine yürüdüler. Dikkatli bir plan yapan Hannibal şehir kapısına iki başarılı saldırı düzenledi ve Numidyalı atlıların da desteği ile şehrin tümünü kısa sürede ele geçirdi. Fakat kale içinde Romalılar ve destek kuvvetleri bulunuyordu. Kartacalılar tahkimat yaparak bir süre sonra kaleyi de aldılar. Böylece kara ve deniz arası yardımlaşmayı da bloke etmiş oldular.

MÖ 212 Capua Muharebesi’nde ise şehri geri almak için kuşatan Roma ordusu sonuç alamayarak kuşatmayı kaldırmıştır. 
Beneventum Muharebesinde (MÖ 212) Hanno, Quintus Fulvius Flaccus’un ordusu karşısında bozguna uğradı. Ana kampı düşürüldü. Fakat aynı yıl gerçekleşen Silarus Muharebesinde Romalılar pusuya düşerek ağır kayıplar Verdi.

Savaşın bu safhasında dikkate çeken en önemli olaylardan biri de Siraküza kuşatması sırasında ünü bilim adamı Arşimet’in icat ettiği görülmemiş savaş makinalarının Romalılar’ın alışılmış kuşatma savaşıyla başarı kazanmasını engellemesidir. Kartacalılar şehri kurtarmak için 20 bin kişilik bir kuvvet göndermiş olsa da salgın hastalık nedeniyle ağır kayıp vererek Agrigentum şehrine çekilmişlerdir. Sonunda yardım bahanesiyle karadan şehre giren Romalılar Siraküza’yı almış ve Arşimet’te öldürülmüştür. Hannibal ana saldırılarında İtalya içindeki yerel halkı asker olarak kullanıyordu. Hanno Saminium’daki asker sayısını arttırmayı amaçlıyordu fakat yollarını kesen Romalılarca Beneventum Muharbesine girdiler. (MÖ 214) ve ordu Hannibal’a ulaşmadan imha edildi. Hannibal müttefikleri kazanmasına rağmen hala Roma karşısında sayısal eşitliği yakalayamamıştı. Bu durum ciddi bir problemdi.

Capua Muharebesi (MÖ 211) Hannibal’ın kışlak olarak kullandığı liman şehri Capua’ya Roma birlikleri büyük bir taarruz düzenledi ve Hannibal şehrin güneyine çekilirken Roma ordusu şehri tekrar ele geçirdi.

Herdonia Muharebesi (MÖ 210) Romalılar'ın kuşattığı bir başka müttefik şehri Herdonia’ya eski konsul Gnaeus Fulvius Centumalus saldırdı ve kuşattı. Fakat Hannibal onu yakalayarak bir meydan savaşına zorladı ve yapılan muharebede 13 bin Roma askeri öldürüldü.

MÖ 210’da yapılan Numistro Muharebesi, Marcellus ve Hannibal arasında sonuçsuz kaldı. Fakat Roma ordusu Casinium ve Tarentum’u tekrar ele geçirmeyi başardı. Hannibal Roma’dan 8 km kadar uzağa çekildi.

Gaius Claudius Nero ve Hannibal arasında yapılan Grumentum Muharebesi (MÖ 207) sonuçsuz kalınca Nero bir hile ile kendisinin kampta olduğuna inandırıp takviye kuvvetle yardıma gelen Hadsrubal’ın ordusuna saldırdı. Metaurus Muharebesi olarak bilinen bu çatışmada Kartaca ordusu mağlup edildi ve Hadsrubal öldürüldü. Hadsrubal’ın kesik başı da Hannibal’a gönderildi.

Ilipa Muharebesinde Kartacalılar ve paralı Kelt askerleri Romalılara karşı savaştı. Scipio Africanus zekice bir hile planladı. İlk günlerde Romalı askerler merkezde İberyalılar ise kanatlarda savaşıyordu. Bunu savaş günü değiştirerek rakibini yanıltma yoluna gitti. Fakat Kartacalılar durumu çabuk sezdile