Перед решающей битвой римская армия выстроилась в две линии. В первой линии стояли легионы Публия Квинктилия, в резерве расположились войска Цетега. Правое и левое крыло римлян прикрыла кавалерия. Магон в центре боевого порядка поставил ливийскую пехоту и лигурийцев, конница расположилась на флангах, боевые слоны и галлы были выделены в резерв.
Сражение началось атакой легионов Вара на центр карфагенских позиций, римляне устремились вперед, намереваясь сходу прорвать вражеский строй. Однако пехота Магона сумела выдержать этот удар. Мало того, легионеры увязли во фронтальном столкновении и начали нести большие потери. Бой был упорный, ливийцы и лигурийцы сражались умело, яростно отбиваясь от наседавших римлян. Противники сошлись врукопашную, поражая друг друга мечами и копьями. Все атаки легионеров были отбиты, битва стала развиваться по сценарию, не предусмотренному римскими военачальниками. Цетег, находившийся со своими легионами во второй линии боевого построения, решил посмотреть на битву с близкого расстояния и оценить обстановку. Направив коня в гущу сражающихся воинов, проконсул столкнулся с Варом, который срывающимся голосом призывал римлян идти вперед. Указав рукой на сгрудившихся у боевой линии карфагенян легионеров, Марк Корнелий произнес: «Ты видишь, сражение выдыхается, враг против ожидания держится – он уже не чувствует страха и вот-вот обнаглеет. Налететь бы на них всадникам, сбить их, смешать их ряды. Либо ты бейся на передовой, а я введу в бой конницу, либо я буду впереди, а ты устреми на врага конницу твоих четырех легионов» (Liv. XXX. 18). Поскольку Вар решил вести в атаку легионы, Цетег вместе с сыном Марком отправился в расположение кавалерии.
Всадники в сражении участия не принимали, они расположились на земле и вполголоса переговаривались друг с другом. Цетег приказал воинам садиться на коней, сформировать строй и приготовиться к атаке. Пропела труба, римская конница устремилась вперед. Навстречу всадникам Цетега выдвинулась нумидийская кавалерия. Нумидийцы забросали римлян дротиками, ловко ушли из-под удара и вновь атаковали противника. Пользуясь тем, что африканцы избегали рукопашной схватки, Цетег решил развернуть конницу и ударить во фланг карфагенской пехоте. Римская кавалерия пошла в новую атаку, однако Магон внимательно наблюдал за ходом боя и своевременно принял ответные меры. В бой пошла пунийская элефантерия, оглашая окрестности трубным ревом, боевые слоны бросились на римскую конницу. От топота огромных животных загудела земля, сидевшие в башнях стрелки метали во врагов стрелы и дротики. Перепуганные лошади взбесились, они поднимались на дыбы и сбрасывали на землю растерявшихся наездников. После того как передние ряды всадников были растоптаны, основная масса римской кавалерии обратилась в бегство. Следом за ними бросились нумидийцы, Магон же решил воспользоваться ситуацией и в свою очередь нанести удар с фланга по римской пехоте.
Элефантерия врезались в ряды двенадцатого легиона и начала крушить боевые порядки римлян. В центре строй легионеров дрогнул под мощным натиском карфагенской пехоты, римлян охватила паника, они стали медленно подаваться назад. Карфагеняне и лигурийцы яростно рубили легионеров мечами, боевые слоны неистовствовали в гуще вражеских воинов, топтали и давили оказавшихся под ногами римлян. Двенадцатый легион понес чудовищные потери; легионеры, зажатые между пунийской пехотой и элефантерией, держались из последних сил. Осознав, что фронт вот-вот рухнет, Вар быстро ввел в бой тринадцатый легион (Liv. XXX. 18). В ответ Магон отправил в битву отряды галлов; потрясая мечами, кельты с боевым кличем устремились в атаку. Воины тринадцатого легиона метнули в противника копья, выхватили из ножен мечи и пошли вперед. После короткого боя галлов отбросили, и Вар отправил в бой одиннадцатый легион. Легионеры поспешили на помощь своим товарищам, изнемогавшим под натиском элефантерии. Погонщики гнали слонов плотными рядами, серые исполины, как чудовищный каток, давили римские ряды. По команде центурионов легионеры одиннадцатого легиона забросали животных копьями: пилумы летели так густо, что четыре слона, оглашая диким ревом окрестности, сразу же повалились на землю. Наступление карфагенян замедлилось, элефантерия топталась на месте, поэтому Цетег воспользовался ситуацией и остановил отступающую конницу. Перестроив всадников, он вернул их в бой и отогнал нумидийцев. Увидев успех коллеги, Вар приказал трубить общее наступление.
Сражение достигло своего апогея, теперь любая случайность могла изменить его ход. Магон спрыгнул с коня, вытащил из ножен фалькату, протиснулся сквозь плотные шеренги карфагенских пехотинцев и встал в первом ряду боевого построения. Наступил решающий момент битвы – начиналась последняя римская атака, поэтому командующий хотел личным примером поднять боевой дух солдат.
Удар легионов был страшен: римляне наступали сомкнутыми рядами, сдвинув большие щиты и сжимая в руках мечи. Рукопашная схватка разлилась по всему фронту, щиты ударялись о щиты, клинки со звоном сталкивались с клинками. Легионеры наращивали натиск, но ливийцы и лигурийцы стояли крепко, успешно отбивая вражеские атаки. Магон стоял в первом ряду и бился как простой воин. Командующий рубил римлян кривой фалькатой, сбивал с ног ударами тяжелого щита, искусно отражал сыпавшиеся со всех сторон удары и громко подбадривал сражающихся рядом бойцов. Ведомые своим бесстрашным командиром, карфагеняне и лигурийцы держали строй, уверенно отбиваясь от наседавших легионеров. Рев боевых слонов, пение труб, лязг железа и грохот щитов были слышны далеко от места сражения. Обе стороны ввели в битву все свои резервы, теперь исход противостояния зависел от мужества и воинского умения простых воинов. Ставки в сражении были очень велики – господство над Северной Италией.
В разгар побоища Магон был тяжело ранен в бедро. Телохранители прикрыли командующего щитами, вынесли из рукопашной схватки и наскоро перевязали рану. Военачальник истекал кровью и уже не мог руководить сражением. Лишившись предводителя, карфагенская пехота стала быстро сдавать позиции и отступать с поля боя, следом за ней покинула место сражения нумидийская кавалерия. Римляне некоторое время преследовали отходящего врага, но затем прекратили погоню и вернулись на поле битвы. Несмотря на серьезные потери, армия Магона не разбежалась, сохранила дисциплину и отошла в лагерь.
На следующее утро римляне не рискнули атаковать пунийцев, поэтому день прошел спокойно. С наступлением ночи Магон отдал приказ о выступлении к лигурийскому побережью, где стоял карфагенский флот. Здесь уже находились посланцы из Картхадашта, передавшие командующему приказ срочно возвращаться в Африку: «положение карфагенян не таково, чтобы удерживать военной силой Галлию и Италию» (Liv. XXX). Узнав о том, что аналогичное посольство отправилось к Ганнибалу, Магон приказал войскам грузиться на корабли.
Точная численность противоборствующих армий неизвестна. Рассказывая о битве, Тит Ливий упоминает три легиона – одиннадцатый, двенадцатый и тринадцатый (XXX. 18). Можно конечно допустить, что у Цетега и Вара было по два легиона, но это будет не более чем предположением. То же самое можно сказать об армии Магона: мы только знаем, что, высадившись в Лигурии, она насчитывала 12 000 пехотинцев и 2000 всадников (Liv. XXVIII. 46). О том, сколько в ее рядах было лигурийцев и кельтов, информация отсутствует.
Битва закончилась победой римлян, но далась она им дорогой ценой. Тит Ливий приводит не только данные о потерях сторон, но и объясняет, почему Вар и Цетег вышли из этого противостояния победителями: «В этот день врагов убито было тысяч до пяти; взято двадцать два знамени. И для римлян победа не была бескровной: претор потерял из своего войска две тысячи триста человек; больше всего – из двенадцатого легиона, погибли и два военных трибуна этого легиона, Марк Косконий и Марк Мевий; в тринадцатом легионе, вступившем в битву уже под конец, пал военный трибун Гай Гельвидий, старавшийся восстановить бой; двадцать два знатных всадника вместе с несколькими центурионами растоптаны были слонами. Сражение продолжалось бы, если бы рана Магона не заставила врагов уступить победу римлянам» (XXX. 18). Именно тяжелое ранение карфагенского полководца изменило ситуацию на поле боя, недаром Ливий дважды подчеркнул этот момент. По мнению римского историка, «пока Магон стоял впереди строя, карфагеняне отступали медленно в боевом порядке, не переставая сражаться, но, когда он упал с пробитым бедром и его, истекающего кровью, вынесли из битвы, все сразу кинулись бежать» (Liv. XXX. 18). Исход сражения предопределила трагическая случайность, а не полководческие таланты римских военачальников.
После неудачной битвы Магон был вынужден эвакуировать армию из Италии. И дело здесь не только в приказе карфагенского правительства. Командующий был уверен, что, узнав о поражении пунийцев, лигурийцы начнут с римлянами мирные переговоры и тем самым сделают невозможным дальнейшее продолжение войны в Северной Италии. Карфагенская армия беспрепятственно погрузилась на корабли и благополучно достигла Африки, лишь несколько судов сбились с курса и около Сардинии были захвачены римлянами.
О том, как сложилась дальнейшая судьба Магона, существует несколько различных мнений. Наиболее правдоподобную информацию приводит Тит Ливий: «Надеясь, что ему будет легче перенести качку, чем тряску в дороге, и что на корабле лечить его будет удобнее, он посадил на суда свое войско и отплыл, но, едва обогнув Сардинию, умер от раны» (XXX. 19). В дальнейшем писатель вновь обратит внимание на данный факт: «Магон же, воевавший с римлянами в земле инсубров, был ранен и, вызванный гонцами в Африку, скончался от раны на обратном пути» (Liv. Epit. 30). Согласно Аппиану, после битвы при Заме Магон набирал наемников в Лигурии, где и получил приказ «вторгнуться в Италию, если он может, или переплыть с наемниками в Ливию