Несмотря на все неудачи, римляне оставались слишком горды, чтобы признать свое поражение. Именно потому Рим с благодарностью отклонил дары, предложенные ему сиракузским царем Гиероном и греческими городами, сделав вид, что дела в империи идут как нельзя лучше. В результате, иллирийским вождям было приказано не медлить с уплатой дани, а македонскому царю было снова предъявлено требование о выдаче Димитрия Фаросского. Несмотря на то, что последние события как будто бы оправдывали медлительную тактику Фабия, сенат решил отказаться от предложенного им способа ведения войны, который, по мнению власти, медленно вел государство к гибели. Было решено собирать новую армию, по своим размерам такую, какой Рим еще не видел.

Было собрано 8 легионов, и значительное число союзных войск — по мнению сената этого было бы достаточно, чтобы раздавить противника, который был вдвое слабее. Кроме того, один легион был отправлен в долину По, для того чтобы заставить возвратиться на родину тех кельтов, которые служили в армии Ганнибала. Оставалось только выбрать главнокомандующего для войск.

Квинт Фабий был непопулярен в народе — среди простых людей ходил слух, будто бы сенат умышленно затягивает войну, поэтому назначать консулов казалось невозможным. Сенату с трудом удалось провести одного из своих кандидатов — Луция Эмилия Павла, который руководил военными действиями в Иллирии, но народная воля навязала ему в компаньоны Гая Теренция Варрона, совершенно бездарного вояку, известного только благодаря своей оппозиции сенату.

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

Тем временем в Риме, Фабий сложил с себя полномочия, и теперь римская армия находилась под начальством Гнея Сервилия и Марка Регула, которые командовали ею вначале в звании консулов, а потом — в звании проконсулов. Полководцы понимали, что им необходимо дать Ганнибалу сражение. Павел и Варрон, приведшие к армии новые 4 легиона солдат также понимали это, прочем, это не сильно их беспокоило, ведь сейчас римская армия состояла из 80 тысяч пехотинцев, тогда как армия Ганнибала имела лишь около 40 тысяч пехоты. Но Ганнибал ничего так не желал, как решительного сражения, ведь широкая апулийская равнина открывала ему возможность воспользоваться преимуществами своей конницы.

Римские военачальники, как было выше замечено, тоже решились вступить в бой, и с этой целью подошли ближе к неприятелю. Впрочем, более осторожные из них, ознакомившись с позицией Ганнибала, рассчитывали выждать и подойти ближе к неприятелю только для того, чтобы принудить его отступить и прогнать карфагенянина с выгодной позиции.

Ганнибал стоял лагерем подле Канн, на правом берегу Ауфида. Павел раскинул свой лагерь по обоим берегам реки, так, что сильный римский корпус расположился на правом берегу вблизи от неприятеля. Его главная цель заключалась в продовольственной блокаде карфагенян — Павел хотел, чтобы корпус препятствовал подвозу продовольствия. Ганнибал, которому было необходимо как можно скорее довести дело до сражения, перешел через реку со своими главными силами, но Павел уклонился от битвы. Впрочем, дерзость карфагенянина очень его разозлила, и он приказал напасть на неприятеля. При этом, солдаты не могли противиться командиру — по сохранившемуся обычаю, право решающего голоса в военном совете переходило от одного главнокомандующего к другому.

Впрочем, римские командующие не были столь глупы — ими было принято решение собрать все римские боевые силы на правом берегу и предложить там битву, заняв позицию между карфагенским лагерем и Каннами. При этом один из отрядов должен был во время битвы завладеть карфагенским лагерем и таким образом лишить неприятельскую армию возможности отступить через реку…

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

Напротив нее Ганнибал построил свою пехоту в форме полумесяца, так что кельтские и иберийские войска в их национальном вооружении составляли переднюю часть центра, а вооруженные по-римски ливийцы стали по бокам на отодвинутых назад флангах. У реки выстроилась вся тяжелая кавалерия под начальством Гасдрубала, а со стороны равнины — легкая нумидийская конница. После непродолжительной схватки между сторожевыми отрядами, состоявшими из легковооруженных частей, бой скоро завязался на всей линии. Там, где легкая конница карфагенян сражалась с тяжелой кавалерией Варрона, бой тянулся достаточно долго, а вот в центре римлянам улыбнулась удача — легионы легко победили карфагенских союзников и преследовали побежденных. Тем временем, Ганнибал старался отвлечь внимание стоявшей на левом неприятельском фланге конницы для того, чтобы Гасдрубал мог напасть со своей регулярной кавалерией на более слабый правый фланг неприятеля и опрокинуть его в первую очередь. После упорного сопротивления римские всадники стали отступать, а раненый Павел прискакал к центру, чтобы спасти легионы от гибели или разделить их участь. Легионы подверглись стремительным атакам со стороны надвигавшейся справа и слева ливийской пехоты.

Наступление римлян было приостановлено, массы римской пехоты, и без того уже построенной слишком густыми рядами, не находили себе достаточного простора, чтобы развернуться. Между тем, Гасдрубал, покончив с тем флангом неприятельской армии, где командовал Павел, снова выстроил своих всадников и, проведя их позади неприятельского центра, напал на второй фланг, которым командовал Варрон. Италийская конница не устояла. Гасдрубал в третий раз построил своих солдат для того, чтобы напасть на неприятельскую пехоту с тыла. Этот последний удар решил исход сражения. Бегство было невозможно, а пощады никому не давали.

Еще никогда такая многочисленная армия не терпела такого сокрушительного поражения! Ганнибал лишился почти 6 тысяч человек, но римская армия потеряла почти 70 тысяч пехотинцев! В том числе были убиты консул Луций Павел и Гней Сервилий. Только консул Марк Варрон спасся. Многие Римляне также были взяты в плен.

Благодаря этому беспримерному успеху стала реальной тактика Ганнибала, которую он долго обдумывал, отправившись в Италию. Полководец, конечно, рассчитывал на свою армию, но понимал, что она слишком малочисленна по сравнению с вражеским войском, и поэтому считал ее лишь авангардом, к которому будут мало-помалу присоединяться военные силы Запада и Востока, чтобы подготовить неминуемую гибель надменному и ненавистному городу.