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