Diktet åpner med en diskusjon om Junos vrede overfor Roma angående Aineias' behandling av Dido og av Hannibals karakter og oppvekst. Hannibal angriper Saguntum og mottar en romersk ambassadør. I Bok 2 er en romersk delegasjon hørt i Karthago, men Hannibal tar byen etter at forsvarerne heroisk har begått selvmord. Kartagerne er listet, Hannibal krysser Alpene, og Jupiter avslår at den puniske krig er en prøve av romernes mandighet i Bok 3. I 4 og 5 lider romerne nederlag ved Ticinius, Trebia, og ved innsjøen Trasimeno. Bok 6 ser tilbake på bedriftene til Atilius Regulus i den første punerkrigen mens Bok 7 beskriver Quintus Fabius Maximus' forhalingsstrategi. Bøkene 8-10 beskriver i levende detaljer slaget ved Cannae; Juno forsøker å forhindre at Hannibal marsjerer mot Roma. I Bok 11 overvintrer Hannibals hær i Capua sør for Roma hvor Venus svekker dem med luksus. Hannibal er beseiret ved Nola i år 12, noe som oppflammer romerne. Han gjør et angrep mot byen, men Juno stopper ham, og avslører at gudene er imot ham. Bok 13 forteller om romernes invasjon av Capua og døden til de Scipioene noen fører til Scipio Africanus' reise til underverden ("nekyia"), hans møte med de berømte døde heltene, og en forutsigelse av Sibylle om Hannibals nederlag. I bok 14 fortelles det om Marcellus' krigstog på Sicilia, og beskrivelse av forsvarsevnene til Arkimedes. I Bok 15 har Scipio, ved å velge dyd over last, en suksessfull krig i Spania hvor Hannibals bror blir drept i slaget ved Metaurus. Bok 16 beskrev alliansen mellom Roma og den numiske kongen Masinissa og Scipioenes kryssing inn i Afrika, men Bok 17 beskriver frakten av Kybeles statue til Roma, Hannibals voldsomme kryssing inn i Afrika, Junos appell til Jupiter for Hannibals liv, og slaget ved Zama. Diktet avslutter ved at Scipioene (Scipio Africanus og Scipio Aemilianus Africanus) vender i triumf tilbake til Roma.