Втората пунска војна (218-201 г.п.н.е) е најпозната по тоа што Ханибал ги минал Алпите со карван од слонови и од север ненадејно навлегол во Римското Царство. Но тој всушност не ја постигнал целта - да го освои градот Рим и конечно да го порази.
Ханибал знаел дека римјаните имаат слаба коњица, затоа развил силна коњичка војска, која била главен фактор на успех врз римските легии.[1]
На почетокот, војната се одвивала на три места: во Италија, кајшто Ханибал неколкупати ги победил Римските легии, во Хиспанија кајшто брат му на Ханибал, Хасдрубал Барцид, ги бранел Картагинските колонијални градови со променлив успех, сè додека конечно не се повлекол кон Италија, и во Сицилија, кајшто Римјаните оствариле воена превласт.
Додека се бореле со Ханибал во Италија, Хиспанија и Сицилија, Римјаните воделе и војна против Македонија. Подоцна, војната со Картагина продолжила во Африка, кајшто Картагина била поразена во Битката кај Зама од Скипион Африканецот. Крајот на војната го означил и крајот на Картагинското царство - нејзината моќ била ограничена само на градот Картагина.
Во 219 година Ханибал Барцид го нападнал Сагунтум во Хиспанија, град сојузник на Рим, што било повод за Втората пунска војна.
По нападот на Сагантум, Ханибал ги изненадил Римјаните во 218 година кога директно ја нападнал Италија. Тој предводел голема платеничка војска, составена главно од Гали, Хиспанци и Нумидијци, и околу 36 африкански слонови преку Алпите. Движејќи се од Алпите на север кон Рим на југ ги победил римјаните во неколку битки: кај реката Требија (218 п.н.е), Тразименско Езеро (217 п.н.е) и Кана (216 п.н.е). Ненадениот напад преку Алпите имал двоен ефект: иако ги победил римјаните во неколку битки, поради студот и тесните планински патишта, Ханибал ги загубил слоновите и опсадните оружја, што го оневозможило да го опсади и освои Рим.
Поради ова, како и поради слабата поддршка што ја добивал од Картагина, Ханибал не бил во можност да ја заврши војната со успех, и таа продолжила уште 16 години без конечен резултат.
Во Хиспанија, еден млад Римски командант, Публиј Корнелиј Скипион успеал да ги победи Картагинските сили предводени од Хасдрубал. Напуштајќи ја Хиспанија, Хасдрубал се повлекол преку Алпите во Италија за да му се придружи на Ханибал. Но, неговото напредување било попречено од римските војски, бил опколен и убиен.
После зацврстувањето на позициите во Хиспанија, Скипион се заканувал да ја нападне и самата Картагина. Поради тоа, Ханибал во 203 година се вратил во Африка за да го брани градот. Во Битката кај Зама во 202 година, Римјаните конечно го победиле Ханибал во отворена битка, и Картагина била принудена да склучи мир под понижувачки услови: откажување од странските колонии, плаќање на големи отштети и забрана за создавање на сопствена војска и морнарица.