Когда Ганнибал встречался с римлянами в открытом поединке, он всегда побеждал. Он одержал две большие победы в северной Италии и сумел привлечь на свою сторону галлов. Далее он вторгся в Этрурию, где устроил засаду, окружил и полностью уничтожил римскую армию у Тразименского озера. В 216 г. до н. э. Ганнибал был атакован значительно превосходящими силами римлян при Каннах, но и здесь одержал полную победу. Пятьдесят тысяч римлян, как говорят, были убиты и десять тысяч взято в плен. Однако развить свой успех и захватить Рим Ганнибал не мог, потому что у него не было осадных машин.

Канны принесли другие плоды. Значительная часть южной Италии перешла на сторону Ганнибала, включая Капую, второй по размерам город после Рима. Его союзниками стали македоняне. Более того. Гиерон, правитель Сиракуз, преданный союзник Рима, к тому времени уже умер, а его преемник предпочел быть с карфагенянами.

Римляне, однако, продолжали вести войну с неизменным упорством и решительностью. Они отказались от переговоров с Ганнибалом после Канн и организовали медленную, но в конечном итоге успешную блокаду и осаду Капуи, а затем римская армия приступила к взятию Сиракуз. Осада Сиракуз памятна главным образом участием в ней знаменитого философа Архимеда, которому долго удавалось удерживать римлян в гавани, не давая перейти к штурму города. Мы уже упоминали Архимеда как одного из учеников и корреспондентов школы при александрийском Мусее. Он был убит во время завершающего штурма города.

Тарент (209 г. до н. э.), основной порт для Ганнибала, откуда шло подкрепление его войскам, постигла та же участь, что и Сиракузы, а следом за ними и Капую (211г. до н. э.), и его связь со своими тылами стала нерегулярной.

Испанию также удалось, шаг за шагом, вырвать из-под контроля карфагенян. Когда подкреплению, которое направлялось к Ганнибалу под командованием его брата Гасдрубала (не путать с его зятем, носившим то же имя и погибшим в Испании), наконец, удалось прорваться в Италию, оно было разбито в сражении у реки Метавр (207 г. до н. э.). Первой вестью об этой катастрофе, которая дошла до Ганнибала, была отрубленная голова брата, заброшенная в его лагерь.

После этого Ганнибал оказался запертым в Калабрии, каблуке Итальянского сапога. У него уже не было сил, чтобы вести сколько-нибудь значительные операции, и он вернулся в Карфаген — как раз вовремя, чтобы возглавить карфагенян в последнем сражении этой войны.

Последнее сражение, битва при Заме (202 г. до н. э.), произошла уже в окрестностях Карфагена.

Это было первое поражение, которое испытал Ганнибал, так что следует уделить немного внимания и личности его победителя, Сципиона Африканского Старшего (235—183 до н. э.), который оставил след в истории и как благородный человек, и как великий воин. Мы уже упоминали некоего Публия Корнелия Сципиона, который атаковал тылы Ганнибала в Испании. Победителем Ганнибала был его сын. До Замы он носил то же имя — Публий Корнелий 'Сципион; затем ему было дано прозвище Африканский.

Сципион Африканский был воплощением всего того, что вызывало недоверие, ненависть и неприятие у римлян старого закала, вроде Катона. Он был молод, счастлив и талантлив, с легкостью тратил деньги, был начитан в греческой литературе и более склонялся к фригийским новшествам в религии, чем к строгим божествам Рима. И он не верил в ту предельную осторожность, которая была тогда единственной римской стратегией.

После поражений, с которых началась для римлян 2-я Пуническая война, на всех их действиях отпечаталась личность полководца Фабия Максима (ум. в 293 до н.э.), который возвел уклонение от решительного сражения с Ганнибалом до уровня священного принципа. На протяжении десяти лет «фабиева тактика» превалировала у римских военачальников в Италии. Они устраивали блокады, отрезали обозы карфагенян, нападали на отставших — и тут же отступали, как только появлялся Ганнибал.