Сокращение интервалов и дистанций и увеличение глубины построения римлян фактически означали отказ от неоднократно проверенных преимуществ манипулярного строя легионов. Римская армия превратилась в огромную фалангу, которая не могла маневрировать на поле боя. При этом римляне не сделали почти ничего для борьбы с главным минусом фаланги – ее неумением отражать атаки с флангов. В условиях открытой равнины эта ошибка стала роковой.
Боевой порядок карфагенской армии был расчленен по фронту: в центре находились худшие войска, крылья состояли из отборных частей пехоты и конницы. На своем крайнем правом фланге Ганнибал построил нумидийскую конницу (две тысячи всадников) под командованием Ганнона, на крайнем левом фланге была расположена тяжелая африканская кавалерия (восемь тысяч всадников) под командованием Гасдрубала, причем на пути наступления этой кавалерии находились всего две тысячи всадников плохо обученной римской конницы. Рядом с конницей, на обоих флангах, было по шесть тысяч человек тяжелых африканских пехотинцев (ливийцев), построенных в шестнадцать шеренг. В центре, глубиной в десять шеренг, стояли двадцать тысяч галлов и иберов, которым Ганнибал приказал выдвинуться вперед. Центр был построен уступом вперед, с тем чтобы получилась кривая линия наподобие полумесяца, к концам постепенно утончавшаяся. Здесь же находился и сам Ганнибал. Восемь тысяч легковооруженных пехотинцев прикрывали боевой порядок карфагенской армии. Таким образом, несмотря на меньшую численность, ширина строя была у карфагенян больше, чем у римлян.
Начало великой битвы было обыденным. Как и в других сражениях античности, первое слово принадлежало лучникам и пращникам. Легковооруженная пехота обоих противников, завязав бой, затем отошла за расположение своих армий. Вслед за этим конница левого фланга боевого порядка карфагенян разбила конницу правого фланга римлян, прошла в тыл их боевого порядка, атаковала конницу левого фланга и рассеяла ее. Карфагеняне прогнали римскую конницу с поля боя. Одновременно развертывался бой пехоты. Римская фаланга двинулась вперед и атаковала карфагенян. Некоторое время ряды иберов и кельтов выдерживали бой и храбро сражались с римлянами; но затем, под давлением тяжелой массы легионов, они подались и начали отступать назад, изгибая линию полумесяца в противоположном направлении. Фактически, у карфагенян фланги и центр вступили в битву не одновременно, центр раньше флангов, поскольку кельты, выстроенные в виде полумесяца, выпуклой стороной, обращенной к неприятелю, выступали далеко вперед. Наступая на кельтскую пехоту, римляне теснились к центру, туда, где подавался неприятель, и ушли так далеко вперед, что с обеих сторон очутились между тяжеловооруженными ливийцами, находившимися на флангах. Ливийцы правого крыла сделали поворот налево и, наступая справа, выстроились против римлян с фланга. Ливийцы левого крыла сделали такой же поворот направо.
Все вышло так, как и рассчитывал Ганнибал: в погоне за кельтами римляне были окружены ливийцами. Не имея более возможности вести сражение по всей линии, римляне в одиночку и отдельными манипулами дрались с неприятелем, теснившим их с боков.
Весь ход событий на поле боя создавал предпосылки для охвата флангов римской армии карфагенской пехотой и завершения окружения римлян конницей и уничтожения окруженной римской армии. Боевой порядок карфагенян принял вогнутую охватывающую форму. Римляне вклинились в него, что облегчило двухсторонний охват их боевого порядка. Задние шеренги римлян вынуждены были повернуться для борьбы с карфагенской конницей, которая, разбив римскую конницу, атаковала римскую пехоту. Тем самым, карфагенская армия завершила окружение римлян. Плотное построение легионов лишило их маневренности. Римляне были сбиты в одну кучу, и сражаться могли только воины внешних шеренг. Численное превосходство римской армии потеряло свое значение; внутри этой огромной массы происходила давка, воины не могли повернуться. Началось страшное избиение римлян. В результате двенадцатичасового боя римляне потеряли сорок восемь тысяч убитыми и около десяти тысяч пленными. Потери карфагенян убитыми составили шесть тысяч человек.