К моменту великой битвы положение двух воюющих сторон было довольно неопределенным. С одной стороны, карфагенский полководец Ганнибал, начавший в 218 году до н. э. свой поход на Италию, одержал ряд побед. При реке Треббии, а затем при Тразименском озере ему удалось разгромить две крупные римские армии. С другой стороны, Рим, осознавший наконец всю опасность войны со столь талантливым полководцем, сумел собрать силы, значительно превышавшие силы Ганнибала. Накануне сражения римская армия насчитывала восемьдесят шесть тысяч воинов, из них восемьдесят тысяч пехоты и шесть тысяч конницы. У Ганнибала было только пятьдесят тысяч солдат, но он имел большое превосходство в коннице: его африканская кавалерия насчитывала десять тысяч человек. Можно говорить и о психологическом преимуществе карфагенян – римская армия в своей значительной части состояла из новобранцев, у Ганнибала же были только ветераны, уже не раз громившие римлян.
Тем не менее, большое численное превосходство привело к всплеску в Риме реваншистских настроений. Демократические круги народного собрания требовали решительных действий, и на 216 год до н. э. консулами были избраны опытный военачальник Луций Эмилий Павел и популярный в народе сторонник немедленных решительных действий Гай Теренций Варрон. Они встали во главе объединенной армии, при этом, как было принято у римлян, командовали ею поочередно: один по четным дням, другой по нечетным. И это консульское двоевластие стало одной из существенных причин последующей катастрофы.
Летом 216 года до н. э. карфагеняне захватили продовольственный склад римской армии, находившийся в городке Канны, рассчитывая этим вызвать римлян на решительный бой. Карфагенская армия расположилась под Каннами в укрепленном лагере и держала под своим контролем всю окружающую территорию. Настроение войск римских союзников было неустойчивым, поскольку противник разорял страну. В данной обстановке сенат высказался за то, чтобы дать решительный бой. Консулы получили от сената указания «кончить войну мужественно и достойно отечества, когда наступит благоприятный для того момент». Они объявили решение сената, разъяснили воинам причины прежних неудач (недостаточная выучка, отсутствие боевого опыта, малое знание противника) и заявили, что при настоящих обстоятельствах, если только воины будут мужественны, нельзя назвать ни одной причины, ни одного препятствия к тому, чтобы победа была за ними. После этого римские легионы двинулись к Каннам и через два дня встали лагерем в двух километрах от противника. Силы римлян численно превосходили силы карфагенян почти вдвое, но карфагенская армия имела важное преимущество: количественное и особенно качественное превосходство конницы, использовать которую позволяла совершенно открытая равнина. В этих условиях Эмилий Павел считал необходимым воздержаться от боя, отодвинуть армию дальше, увлечь за собой карфагенян и потом дать бой на позиции, удобной для пехоты. Теренций Варрон держался противоположного мнения и требовал боя на равнине под Каннами.
1 августа римской армией командовал Варрон; он приказал легионам сняться с лагеря и двинуться навстречу противнику. Эмилий был против этих действий, но Варрон не обращал внимания на все его возражения. Навстречу римлянам Ганнибал двинул свою конницу и легковооруженных пехотинцев и неожиданно атаковал римские легионы во время движения, внеся замешательство в их ряды. Но затем римляне выдвинули вперед отряд тяжеловооруженной пехоты, подкрепив его метателями дротиков и конницей. Атака карфагенян была отражена, и они вынуждены были отступить. Этот успех еще больше укрепил Варрона в его стремлении к решительному бою. На следующий день Эмилий уже не мог безопасно отвести легионы, так как римляне находились в непосредственном соприкосновении с противником.
2 августа, лишь только показалось солнце, римские войска вышли сразу из обоих лагерей и стали выстраивать боевой порядок на левом берегу реки Ауфид, фронтом на юг. Часть римской конницы поместили у самой реки на правом крыле; к ней в той же линии примыкала пехота, причем манипулы были поставлены гораздо теснее, чем прежде, и всему строю была дана большая глубина, чем ширина. Другая часть конницы (конница союзников) встала на левом крыле. Впереди всего войска, в некотором отдалении, расположились отряды лучников и пращников. Боевой порядок римлян занимал по фронту около двух километров. Тяжеловооруженная пехота была выстроена в три линии по двенадцать шеренг в каждой, то есть в глубину – тридцать шесть шеренг (по другим данным, в три линии по шестнадцать шеренг, то есть всего сорок восемь шеренг). Столь мощная глубина строя могла подразумевать одну-единственную тактику – фронтальное наступление. Резервы на случай непредвиденных действий противника вообще не предусматривались. Легионы и манипулы строились с сокращенными интервалами и дистанциями; на левом фланге выстроилась четырехтысячная конница под командованием Варрона, на правом фланге – двухтысячная конница под командованием Эмилия. Восемь тысяч легковооруженных пехотинцев прикрывали боевой порядок. Десять тысяч легионеров оставались в лагере, семь тысяч человек охраняли обоз. Таким образом, непосредственными участниками битвы стали шестьдесят девять тысяч римлян.
Сокращение интервалов и дистанций и увеличение глубины построения римлян фактически означали отказ от неоднократно проверенных преимуществ манипулярного строя легионов. Римская армия превратилась в огромную фалангу, которая не могла маневрировать на поле боя. При этом римляне не сделали почти ничего для борьбы с главным минусом фаланги – ее неумением отражать атаки с флангов. В условиях открытой равнины эта ошибка стала роковой.
Боевой порядок карфагенской армии был расчленен по фронту: в центре находились худшие войска, крылья состояли из отборных частей пехоты и конницы. На своем крайнем правом фланге Ганнибал построил нумидийскую конницу (две тысячи всадников) под командованием Ганнона, на крайнем левом фланге была расположена тяжелая африканская кавалерия (восемь тысяч всадников) под командованием Гасдрубала, причем на пути наступления этой кавалерии находились всего две тысячи всадников плохо обученной римской конницы. Рядом с конницей, на обоих флангах, было по шесть тысяч человек тяжелых африканских пехотинцев (ливийцев), построенных в шестнадцать шеренг. В центре, глубиной в десять шеренг, стояли двадцать тысяч галлов и иберов, которым Ганнибал приказал выдвинуться вперед. Центр был построен уступом вперед, с тем чтобы получилась кривая линия наподобие полумесяца, к концам постепенно утончавшаяся. Здесь же находился и сам Ганнибал. Восемь тысяч легковооруженных пехотинцев прикрывали боевой порядок карфагенской армии. Таким образом, несмотря на меньшую численность, ширина строя была у карфагенян больше, чем у римлян.
Начало великой битвы было обыденным. Как и в других сражениях античности, первое слово принадлежало лучникам и пращникам. Легковооруженная пехота обоих противников, завязав бой, затем отошла за расположение своих армий. Вслед за этим конница левого фланга боевого порядка карфагенян разбила конницу правого фланга римлян, прошла в тыл их боевого порядка, атаковала конницу левого фланга и рассеяла ее. Карфагеняне прогнали римскую конницу с поля боя. Одновременно развертывался бой пехоты. Римская фаланга двинулась вперед и атаковала карфагенян. Некоторое время ряды иберов и кельтов выдерживали бой и храбро сражались с римлянами; но затем, под давлением тяжелой массы легионов, они подались и начали отступать назад, изгибая линию полумесяца в противоположном направлении. Фактически, у карфагенян фланги и центр вступили в битву не одновременно, центр раньше флангов, поскольку кельты, выстроенные в виде полумесяца, выпуклой стороной, обращенной к неприятелю, выступали далеко вперед. Наступая на кельтскую пехоту, римляне теснились к центру, туда, где подавался неприятель, и ушли так далеко вперед, что с обеих сторон очутились между тяжеловооруженными ливийцами, находившимися на флангах. Ливийцы правого крыла сделали поворот налево и, наступая справа, выстроились против римлян с фланга. Ливийцы левого крыла сделали такой же поворот направо.
Все вышло так, как и рассчитывал Ганнибал: в погоне за кельтами римляне были окружены ливийцами. Не имея более возможности вести сражение по всей линии, римляне в одиночку и отдельными манипулами дрались с неприятелем, теснившим их с боков.
Весь ход событий на поле боя создавал предпосылки для охвата флангов римской армии карфагенской пехотой и завершения окружения римлян конницей и уничтожения окруженной римской армии. Боевой порядок карфагенян принял вогнутую охватывающую форму. Римляне вклинились в него, что облегчило двухсторонний охват их боевого порядка. Задние шеренги римлян вынуждены были повернуться для борьбы с карфагенской конницей, которая, разбив римскую конницу, атаковала римскую пехоту. Тем самым, карфагенская армия завершила окружение римлян. Плотное построение легионов лишило их маневренности. Римляне были сбиты в одну кучу, и сражаться могли только воины внешних шеренг. Численное превосходство римской армии потеряло свое значение; внутри этой огромной массы происходила давка, воины не могли повернуться. Началось страшное избиение римлян. В результате двенадцатичасового боя римляне потеряли сорок восемь тысяч убитыми и около десяти тысяч пленными. Потери карфагенян убитыми составили шесть тысяч человек.