На следующий день войска построились в боевой порядок. У римлян, как обычно, были три линии: гастаты, принципы и триарии. Новым было то, что манипулы стояли не в шахматном порядке, а один за другим, образуя колонны. Сделано это было для того, чтобы слоны, которыми Ганнибал, по данным Сципиона, должен был непременно воспользоваться, прошли бы сквозь образовавшиеся между манипулами широкие проходы, не нанеся ущерба пехоте. Там же, в проходах, были поставлены велиты, на долю которых и выпадала борьба со слонами. Левый фланг прикрывала римско-италийская конница под командованием Гая Лелия, на правом фланге стояли нумидийцы Масиниссы (Полибий, XV, 9, 6–10; Ливий, ХХХ, 33, 1–3; Аппиан, Ливия, 41).
Ганнибал тоже построил свою армию в три линии, впереди которых были поставлены восемьдесят слонов – по словам Ливия, большего их количества он до сих пор в битвах не использовал. За ними первую линию пехоты составляли вспомогательные войска из лигурийцев, кельтов, мавров и балеарцев, всего до двенадцати тысяч человек (возможно, это были остатки армии Магона). На небольшом расстоянии от них располагалась вторая линия, в которой стояли собственно карфагеняне, ливийцы и, по словам Тита Ливия, македоняне. Третья линия, отстоявшая от второй на целую стадию, включала в себя воинов, которых Ганнибал привез с собой из Италии. Здесь, очевидно, кроме италийцев из Бруттия, были ветераны, прошедшие всю войну. Конница стояла на флангах, пунийская на правом, нумидийская на левом. Всего, по данным Аппиана, армия Ганнибала составила до пятидесяти тысяч человек, что явно преувеличение (Полибий, XV, 11, 1–4; Ливий, ХХХ, 33, 4–7; Аппиан, Ливия, 40). Более точных сведений о численности армий источники не содержат, поэтому о них можно говорить лишь достаточно гипотетически, основываясь на дальнейшем ходе сражения. В соответствии с ним у римлян был перевес в коннице, численность которой была около шести тысяч всадников (из них четыре тысячи нумидийцев), а в отношении пехоты силы были либо примерно равными, либо небольшим преимуществом располагали карфагеняне. Здесь наиболее часто встречающиеся оценки – около тридцати тысяч человек.
Закончив строить войска, полководцы выступили с подобающими случаю речами. Сципион всеми своими словами и видом выражал уверенность в победе и столь долгожданном окончании войны. Ганнибал говорил со своим многонациональным воинством с помощью переводчиков и для каждого народа находил то, что могло придать ему упорства и решительности. Всем была ясна цена победы: карфагеняне боролись за существование своего государства, для римлян она означала шаг к мировому господству.
Битва началась спонтанно, с небольших схваток на римском правом фланге, где нумидийские всадники, очевидно не выдержав ожидания и не дождавшись команды полководцев, начали меряться силами с врагом. Вскоре после этого Ганнибал подал сигнал, и в дело пошли слоны. Вероятно, не все из них были в должной мере обучены (это вполне естественно, учитывая отчаянное положение, в котором проводилась последняя мобилизация пунийской армии), и несколько животных, испугавшись звуков труб и криков легионеров, повернули назад и смяли строй нумидийской конницы на своем левом фланге. Этим сразу воспользовался Масинисса, и его всадники быстро оттеснили неприятеля. Одновременно с этим часть слонов отошла к правому флангу, но оказавшиеся против них римские всадники забросали их дротиками, после чего Гай Лелий повел их в атаку, и пунийская кавалерия была так же точно отброшена назад.
Таким образом, пехота карфагенской армии осталась без прикрытия, но пока это ей ничем не угрожало – отряды Масиниссы и Гая Лелия, увлеченные преследованием противника, оказались далеко в тылу Ганнибаловой армии и долгое время не вмешивались в ход битвы. Атака слонов не принесла особого успеха. Они, как и рассчитывал Сципион, прошли сквозь промежутки между манипулами и в большинстве своем погибли в борьбе с велитами, которым, впрочем, смогли нанести значительный урон.
Настал черед главных сил армий. Мерным шагом, постепенно ускоряясь, римские и пунийские пехотинцы двинулись друг на друга. Выкрикнув боевой клич, воины вступили в рукопашную. Вначале римским гастатам пришлось непросто, но постепенно они начали брать верх и теснить первую линию карфагенян.
Далее сражение приобрело довольно необычный характер. Отступающие воины первой линии пунийской армии натолкнулись на фалангу, составлявшую вторую линию, и, по словам Полибия, возмущенные тем, что их своевременно не поддержали, начали сражаться против своих же товарищей. Вероятнее, впрочем, причина этого замешательства заключалась в том, что отступавшие хотели укрыться за шеренгами второй линии, но их, во избежание нарушения строя, Ганнибал приказал не пускать (у Полибия есть на это недвусмысленное указание). Зажатые между своими и врагами, воины первой линии были вынуждены отходить на фланги и продолжать бой уже там.