Тем временем в Риме одним из консулов был избран Теренций Варрон, человек «низкого происхождения» и «новый» в правящей верхушке. Выборы прошли под лозунгом борьбы со знатью, которая хотела войны с Ганнибалом и вот-де сама привела его в Италию, а теперь замедляет победу. Однако именно теперь Ганнибалу решительное сражение давало единственный шанс. В битве при Каннах (216 г.) была истреблена огромная римская армия. Став хрестоматийным образцом военного искусства, битва эта лишь осложнила военное положение римлян, но не определила исхода войны.
Ганнибал тщетно ждал переговоров о выкупе пленных или даже об условиях мира. Римский сенат, справившись с первым шоком, стал принимать неотложные меры. Был объявлен набор всех способных носить оружие (17-летних и даже моложе), того же потребовали от латинян и союзников. Неслыханной мерой был набор добровольцев-рабов, которых государство выкупало у господ. Их было набрано 8 тыс. (два легиона). Свободу им предоставили лишь два года спустя, а пока консульское распоряжение 215 г. предписывало, чтобы никакие попреки прошлым не сеяли раздоров в войске: «Пусть считаются достаточно почтенными и благородными все, кому римский народ вверил оружие и знамена». Были записаны в армию и около 6 тыс. заключенных, пожелавших освободиться таким образом. Когда стало известно, что спасшийся с поля битвы (его коллега погиб) Теренций, на которого возлагали вину за поражение, собрал остатки рассыпанного войска, его вызвали в Рим как законного носителя власти, и он даже удостоился благодарности от сената за то, что не отчаялся в спасении государства. На военные нужды обращались богатства и храмов, и частных лиц (последние предоставляли их добровольно или под обязательство о возмещении). С другой стороны, тоже демонстративной мерой был отказ в выкупе римским солдатам, сдавшимся в плен после катастрофы при Каннах (покинувшие поле битвы были наказаны в дисциплинарном порядке). И даже в момент наибольшей опасности не были отозваны римские войска из Испании, где братья Публий и Гней Сципионы успешно действовали против карфагенян и привлекали на свою сторону местные племена.
Ганнибал пошел не на Рим, а в Самний, где живы были традиции борьбы с римлянами. Ему удалось, используя политико-психологический эффект Каннской битвы, частично осуществить то, на что он рассчитывал, предпринимая поход, — отколоть от римлян ряд городов (Капую и др.) и племен в Кампании и на юге Италии. Следует согласиться с исследователями, полагающими, что «никакие органические интересы не связывали новоявленных союзников с Карфагеном», но атмосфера неуверенности и нестабильности обостряла внутреннюю борьбу в городах. Обычно считают, что знать была настроена проримски, а «плебс» прокарфагенски. Действительно, связи италийской знати с римской (вплоть до персональных и брачных) были уже прочными, а «плебс» был традиционным противником знати. Однако большую роль играли и междоусобицы внутри самой знати, и конкретная военная обстановка на местах, и (особенно для племен и греческих городов) исторические традиции.
Бесперспективность союзов с Ганнибалом на италийской почве выявилась скоро: уже в 215 г. самниты и гирпины жаловались ему, что римляне опустошают их поля, как будто Марцелл, а не Ганнибал победил под Каннами. Выходило, что италийские союзники не столько помогают Ганнибалу, скольку ищут помощи от него. А он, ограниченный в людских резервах, метался между горячими точками. (Это продолжалось 13 лет!) С обеих сторон шла борьба за союзников и совершались жестокости, ее затруднявшие. Сходная обстановка сложилась и в Сицилии, где Ганнибалу удалось отколоть от римлян Сиракузы, с 215 г. волнуемые внутренними усобицами.
Посольство римлян к Дельфийскому оракулу после Канн показало, что престиж Рима среди греков остался достаточно высоким. В войне с Филиппом V, который тоже вступил в союз с Ганнибалом (I Македонская война, 215-205 гг.), многое было сделано силами греческих союзников Рима. Несмотря на кое-какие уступки Филиппу, мирный договор усиливал позиции Рима в Греции.
Война с Карфагеном была еще долгой и изобиловала драматическими перипетиями. В 215 г. в Испании была одержана первая крупная победа римлян после каннского поражения. В 213 г. ими были осаждены Сиракузы, а в 212 г. — Капуя, которую Ганнибал хотел сделать своей главной опорой в Италии. Но даже демонстративным рейдом к Риму (211 г.) он не добился снятия этой осады, и Капуя пала вслед за Сиракузами (при взятии которых в 211 г. погиб великий ученый Архимед). По существу, исход войны в Италии и Сицилии был предрешен, хотя карфагенские подкрепления еще два раза вторгались в Италию (в 207 г., когда они повторили марш Ганнибала, но были разбиты в Северной Италии, и в 205 г., когда они прибыли морем, но выйти за пределы Северной Италии так и не смогли). Ганнибал в конце концов оказался заперт в Бруттии (южная оконечность Италии) и ничего не предпринимал.
Особое значение получили военные действия в Испании. Здесь карфагенянам удалось поколебать кельтиберских союзников и разбить поочередно обоих братьев Сципионов. Римляне были вновь отброшены за Ибер, где, однако, сумели закрепиться. В Риме было решено послать туда дополнительное войско и полководца с консульскими правами. На это место был избран Публий Сципион — сын одного из погибших. Он сразу обнаружил яркое дарование полководца, эффектной операцией захватив прежде всего Новый Карфаген. Здесь же проявились его административные и дипломатические способности. Он возвратил гражданам этого города самоуправление, показав тем самым, что и пунийские колонисты могут не бояться власти Рима. На его сторону вновь переходили иберийские племена, и ему удалось завязать связи с царьками нумидийцев, африканских кочевников, поставлявших Карфагену едва ли не лучшую конницу (один из них, Массинисса, стал потом на долгие годы верным союзником Рима). Такая политика позволила Сципиону уже в 206 г. завершить военные действия в Испании взятием Гадеса (совр. Кадикс), древней финикийской колонии.