Uskollisena valalleen Hannibal rupesi tultuaan ylipäälliköksi rakentamaan riitaa roomalaisten kanssa. Hän valloitti Rooman liitossa olevan Saguntumin kaupungin. Tämän johdosta senaatti vaati Karthagon hallitusta luovuttamaan Hannibalin tai julistamaan sodan. Kun Karthagon neuvoskunta epäröi, niin Rooman lähettiläs kääri viittansa kokoon ja virkkoi: »Tässä on sota ja rauha, valitkaa!» Neuvoskunta vastasi: »Anna kumman tahdot!» »Olkoon sitten sota!» oli roomalaisen vastaus. Niin alkoi toinen puunilaissota v. 218.
Yllättääkseen vihollisen hänen omassa maassaan Hannibal päätti viedä Espanjassa olevat joukkonsa Gallian kautta ja Alppien yli Pohjois-Italiaan.
Sotajoukon johdattaminen Alppien yli oli kumminkin vaikea, jopa uhkarohkea teko. Gallialaisten oppaiden saattamana Hannibal kulki Pienen S:t Bernhardin kautta. Syksy oli jo tulossa, ja korkeimmat solatiet alkoivat olla lumen peitossa. Lännestä noustaessa Alpit ovat suhteellisen loivat, joten itse nousu solaan ei tuottanut sanottavia vaikeuksia. Sitä enemmän häiritsivät vihamielisten vuoristokansojen salaväijytykset. Kun sotajoukko yhdeksän päivän jälkeen oli saapunut autiolle solaylänteelle Mont Blancin juurelle, sotilaat jo olivat lopen uupuneet. Rohkaistakseen heidän mieltään Hannibal vei heidät eräälle kielekkeelle, josta he näkivät vihannan Italian leviävän silmiensä eteen. Annettuaan sotajoukon jonkin verran levätä Hannibal ryhtyi laskeutumaan laaksoihin. Tämä oli paljon vaikeampaa kuin nousu vuorille, sillä Alpit viettävät jyrkästi Po joen laaksoon. Useasti miehet liukastuivat kapeilta po-luilta ja suistuivat suin päin syvyyteen. Jalkaväki tuli kuitenkin jotenkuten toimeen, mutta vaikeampi oli kuljettaa kuormastoa, ja kaikkein enimmän huolta tuottivat suuret ja kömpelöt sotaelefantit. Eräässä kohdassa oli kuljettava jyrkästi viettävän lumikentän poikki. Hanki ei kannattanut hevosia ja elefantteja, vaan ne vaipuivat kuin loukkuun eivätkä lopulta päässeet kulkemaan eteenpäin enempää kuin taaksepäinkään. Ihmisiä taas hanki kylläkin kannatti, mutta rinne oli niin jyrkkä, että jalkamiehet liukastuivat, ja aina kun pyrkivät polviensa varassa nousemaan pystyyn, he liukuivat vain alemmas. Suurella vaivalla saatiin rakennetuksi lumikentän yli tie, jota pitkin sotajoukko pääsi etenemään. Kaksi viikkoa kesti matka Alppien yli, ja sen aikana kolmas osa sotajoukkoa joutui hukkaan.
Hannibalin sotataito korvasi kuitenkin kärsityt tappiot. Hän sai istutetuksi sotamiehiinsä erinomaisen innostuksen ja alttiuden, antautumalla kaikkiin niihin kärsimyksiin kuin hekin; hän söi heidän yksinkertaista ruokaansa, marssi jalkaisin heidän rinnallaan ja nukkui taivasalla. Vihollisten asemat ja suunnitelmat hän ymmärsi saada selville vakoojien avulla. Ei kukaan vakoilussa vetänyt vertoja hänelle itselleen. Valepuvussa ja tekoparta leuassa hän kävi Italian kaupungeissa ja keskusteli sujuvalla latinan kielellä asukkaiden kanssa.
Roomalaiset lähettivät kolme suurta sotajoukkoa Hannibalia vastaan, mutta hän voitti ne kaikki. Diktaattoriksi valittu Fă´bius Mā´ximus ei uskaltanut antautua julkitaisteluun Hannibalin kanssa, vaan seurasi aina vihollisen kintereillä vaikeuttaen ruuan hankinnan ja tuottaen hänelle pienempiä vaurioita, missä saattoi. Fabiuksen omituinen sodankäyntitapa ei miellyttänyt roomalaisia, jotka alkoivat sanoa häntä »vitkastelijaksi» (Cunctā´tor).
Kerran oli Fabius saamaisillaan vangituksi koko Hannibalin sotajoukon. Oppaat veivät näet Hannibalin harhaan. Äkkiä hän huomasi olevansa suljettuna vuorien ympäröimään umpilaaksoon. Harjanteilla näkyi kaikilla puolin roomalaisia sotilaita. Mutta Hannibal sidotutti vitsakimppuja 2,000 naudan sarviin; yöllä sytytettiin vitsat palamaan ja mylvien naudat hyökkäsivät harjannetta ylös. Roomalaiset, jotka nähdessään nuo tulta syöksevät hirviöt luulivat itse hornan henkien olevan liikkeellä, aivan tyrmistyivät. Sitten kyllä selvisi, että kysymyksessä oli ihmisten keksimä sotajuoni, mutta luullen vihollisjoukon tekevän äkkirynnäkön he joka puolelta kiiruhtivat uhatulle kohdalle. Sillä välin Hannibalin joukot livistivät vastakkaiselta taholta tiehensä.
● Kun diktaattorin virka-aika oli kulunut umpeen, valittiin taas konsulit. Nämä päättivät vielä kerran koettaa sotaonnea. Cannaen [ka´nnē] taistelussa sotajoukot törmäsivät yhteen, mutta taaskin Hannibal sai loistavan voiton. Sotatanterella 70,000 roomalaista makasi kuolleena, niiden joukossa toinen konsuli ja 80 senaattoria. Nyt kaikki luulivat Hannibalin rientävän suoraan pääkaupunkia valloittamaan. Rooman valtasi suunnaton kauhu. Vielä vuosisatojen kuluttua asukkaat sanoivat toisilleen: »Hannibal on porttien edessä» (Hannibal ad po´rtās), kun odottivat suurta onnettomuutta. Hannibal ei kuitenkaan saapunut, vaan katsoi tarpeelliseksi ensin saada puolelleen Italian kansat.
Vaikka asema tuntui epätoivoiselta, roomalaiset eivät kuitenkaan lannistuneet. He ponnistivat viimeiset voimansa saadakseen vielä sotajoukon kokoon; orjia ja pahantekijöitäkin asetettiin riveihin.
Karthagon kauppiaat eivät puolestaan lähettäneet Hannibalille tarpeeksi apujoukkoja, koska pitivät tärkeämpänä jatkaa taistelua Espanjassa. Hannibalin joukot hupenivat päivä päivältä. Liittolaiset alkoivat luopua hänestä. Vihdoin hänen täytyi karvastelevalla mielellä vetäytyä Italian eteläisimpään niemimaahan, jonne hän varustautui niin lujasti, että hän vielä vuosikausia saattoi tehdä vastarintaa roomalaisille.
Tämän sodan roomalaisista sotapäälliköistä oli Scīpio onnekkain. Hannibalin taistellessa Italiassa hän valloitti Espanjan roomalaisille. Lähtipä hän vihdoin Afrikkaan hätyyttämään Karthagoa sen omilla tanterilla. Nyt vihdoinkin Karthagon kauppaylimyksille tuli hätä käteen. He lähettivät pikaisesti sanan Hannibalille Italiaan, että hänen viipymättä oli palattava Karthagoa puolustamaan. Hannibal noudatti käskyä. Ză´man luona sotajoukot iskivät yhteen. Verisen taistelun jälkeen roomalaiset saivat voiton. Karthagon oli pakko suostua rauhaan, joka lopetti sen mahtavuuden. Se luopui Espanjasta, joka tehtiin Rooman maakunnaksi, luovutti laivastonsa roomalaisille, lupasi olla ryhtymättä sotaan ilman Rooman suostumusta ja maksoi suunnattoman rahasumman.