"Yks' oli mies, joka vitkahan säilytti valtion meille."
Seuraavana vuonna, kun Fabius jo oli luopunut diktaattorin virasta, uskalsi malttamaton konsuli Terentius Varro, vastoin virkaveljensä, varovaisemman Aemilius Paulluksen neuvoa, ryhtyä taisteluun. Sen ajattelemattomuuden tähden saivat roomalaiset kärsiä hirvittävän tappion Kannan (Cannae) luona (216). Joka taholta piiritettyinä surmattiin heidät siellä melkein viimeiseen mieheen asti; 45,000 miestä makasi taistelukentällä, niiden joukossa 80 senaattoria ja jalo konsuli Aemilius Paullus. Tämän voiton kautta pääsi Hannibal melkein koko Ala-Italian herraksi.
Rooma osoitti onnettomuudessa jaloutensa. Senaattorit juhlallisesti kiittivät palaavaa konsuli Terentius Varroa, ett'ei hän epäillyt tasavallan tulevaisuudesta. Ei kukaan edes puhunutkaan rauhasta, eikä Hannibalin lähettiläitä, jotka toivat rauhan ehdotusta, päästetty kaupunkiin. Orjille annettiin aseita ja saavutetun voiton jälkeen vapaus. Uusia legioneja koottiin, joilla Marcellus, "Rooman miekka", alkoi saavuttaa menestystä pienemmissä taisteluissa.
Syrakusan valloitus (212). Vähän jälkeen Kannan taistelun valitsi Hannibal pääpaikakseen Kapua-kaupungin, jossa hänen karaistunut sotajoukkonsa veltostui ylellisestä elämästä. Marcellus sill'aikaa saavutti pienempiä voittoja ja alkoi (214) piirittää Syrakusaa, joka oli luopunut Hannibalin puolelle.
Syrakusa oli sekä maan että meren puolelta hyvin varustettu, ja sitä paitsi puolustettiin sitä monella nerokkaalla keinolla, jotka etevä suuretieteen tutkija Arkimedes oli keksinyt. Maan puolelta ryntäävää vihollista vastaan asetti hän heittokoneita, jotka milloin viskelivät nuolia ja keihäitä, milloin suuria kiviä, tehden paljon vahinkoa. Meren puolella, jossa Marcellus itse johti rynnäkköä, kävi roomalaisille yhtä huonosti. Kaupungin muureilta pudoteltiin teräväpäisiä hirsiä, jotka lävistivät laivat, taikka vedettiin rautakoukuilla laivan perä ilmaan, niin että keula upposi mereen. Kerrotaanpa muutamia laivoja sellaisilla koneilla nostetun aivan ylös vedestä, heilutellun ilmassa ja viimein lyödyn rikki muureja vasten taikka heitetyn alassuin mereen. Kun roomalainen laivasto poistui muurien luota etemmäksi, käänsi Arkimedes niitä kohti suuria polttopeilejä, joten muutamat laivat roomalaisten suureksi kauhuksi syttyivät tuleen keskellä merta.
Näin kesti piiritystä kaksi vuotta ja osan kolmattakin. Viimein valloitettiin kaupunki äkkiarvaamatta (212). Asujanten leikkien ja pitoja pitäen viettäessä eräänä yönä Artemis-jumalattaren juhlaa anasti Marcellus yht'äkkiä erään tornin, jota ei kyllin huolellisesti vartioitu. Siitä levisivät sitte roomalaiset kaupunkiin. Marcellus käski, mikäli mahdollista, säästää asujanten henkeä, ja halusi varsinkin saada Arkimedesta elävänä käsiinsä. Mutta se toivo ei toteutunut. Roomalainen sotamies tunkeutui tutkijan lukuhuoneesen ja kehoitti häntä seuramaan itseänsä. Arkimedes, ollen tutkimisiinsa vaipuneena ja kummarruksissaan tarkastelemassa hiekkaan piirustettuja kuvioita, ei liikahtanut, vaan vastasi: "Älä riko minun ympyröitäni!" Ne olivatkin hänen viimeiset sanansa, sillä suuttunut roomalainen lävisti hänet heti miekallaan.
Kohta Syrakusan valloituksen jälkeen kaatui Marcellus taistelussa Hannibalia vastaan, jonka sanotaan vuodattaneen kyyneliä, kun sai kuulla arvokkaan vastustajansa kuolleen.
Scipio Afrikanus Vanhempi. Publius Scipio, sen Scipion poika, joka taisteli Ticinuksen varrella, saavutti viimein voiton roomalaisille. Kun hänen isänsä ja setänsä kaatuivat Espanjassa, pidettiin Roomassa kansankokous heidän seuraajansa valitsemista varten. Mutta ei ketään ollut, joka olisi tahtonut ottaa vastaan vaarallista päällikön tointa. Viimein astui kokoutuneen kansan eteen aukealle, kaikkein nähtävälle paikalle nuori Scipio ja ilmoitti ottavansa vastaan päällikkyyden. Hänen kookas vartalonsa ja jalo muotonsa vaikuttivat mahtavasti kansaan; hän oli myöskin hyvin tunnettu haaveksivasta mielestään, jota unet ja jumalain näyt pitivät virkeänä, sekä paljon tavoittelevasta kunnianhimostaan. Kansa vastasi hänen tarjoukseensa riemuhuudolla ja hän kohta läksi päälliköksi Espanjaan.
Pian hän valloitti uuden Kartagon (Cartagenan), kartagolaisten pääpaikan Espanjassa, ja sai ylevällä lempeydellään puolellensa monta Espanjan pikku ruhtinasta. "Nuorukainen", sanottiin, "on tullut Espanjaan, jumalain kuva, joka voittaa kaikki sekä aseilla että myöskin hyvyydellä ja armeliaisuudella". Kahdella ratkasevalla voitolla kukisti hän kartagolaisten voiman siinä maassa. Hyvin varustetun sotajoukon kanssa marssi hän sitte itse Afrikkaan. Tehden liiton Numidian kuninkaan Masinissan kanssa sai hän hyvän apulaisen, hyökkäsi yöllä kartagolaisten leiriin, poltti sen ja hävitti melkein koko heidän sotajoukkonsa. Silloin heidän täytyi hädissään kutsua Hannibal takaisin.
Viholliset tapasivat toisensa Zaman luona viiden päivänmatkan päässä Kartagosta (202). Ennen taistelua Hannibal, mielessä synkkiä aavistuksia, pyysi puhella Scipion kanssa kahden kesken. Hetkisen pysyivät nämä molemmat kuuluisat sotapäälliköt vaiti, kun yhtyivät. Viimein Hannibal alkoi puhua. Hän huomautti onnen vaihtelevaisuutta ja lausui, että rauha varmaankin olisi parempi kuin luultu voitto, ja esitti rauhan ehdot. Mutta kun Scipio niitä ei hyväksynyt, turvauduttiin aseihin. Seuraavana päivänä oli verinen taistelu. Kartagolaisten elefantit peljästyivät ja syöksyivät heitä itseään vastaan, heidän gallialaiset joukkonsa pakenivat, ja kokeneet sotilaat, jotka Hannibal oli tuonut Italiasta, kaatuivat täällä urhollisesti taistellen. Niinpä oli Kartagon viimeinen sotajoukko perin pohjin voitettu. Scipio sai tämän urhotyönsä ja voittonsa muistoksi liikanimen Afrikanus. Rauha täytyi nyt (201) tehdä voittajan määräämillä ehdoilla: Kartagon piti luopua kaikista Afrikan ulkopuolisista alusmaistaan, maksaa 10,000 talenttia, antaa pois sotalaivastonsa, paitsi kymmenen laivaa, ja sitoutua olemaan ilman Rooman suostumusta ryhtymättä sotaan mitään ulkovaltaa vastaan.