Велиты забросали карфагенян дротиками, затем быстро отступили, но через некоторое время вернулись и вновь напали на вражеское войско. Атаки повторялись с завидной регулярностью, Гасдрубал не выдержал и приказал армии разворачиваться в боевые порядки. Луций Цецилий наблюдал за разворачивающимися у реки стычками с крепостной башни, оттуда маневры вражеского военачальника были хорошо видны. Метелл спешно собрал командиров и объяснил план предстоящей битвы, после чего отдал приказ войскам занять позиции у рва, а на помощь велитам отправил несколько отрядов легковооруженных воинов. С крепостных стен спускали на веревках связки копий и дротиков, к бойницам подносили стрелы и камни. У ворот замерли принципы и триарии, а гастаты вышли за линию городских укреплений и построились в несколько рядов. Теперь их отделял от пунийцев только широкий ров.
Сражение разгоралось, атаки легковооруженной римской пехоты становились все яростнее. Гасдрубал проехал вдоль строя ливийских копейщиков, переговорил с военачальниками, после чего направил коня в сторону Панорма. Карфагенский командующий до рези в глазах разглядывал городские стены и башни, однако, кроме незначительного количества дозорных, ничего подозрительного не увидел. Недалеко от подножия стен замер плотный строй легионеров, но численность отряда была невелика, и Гасдрубал решил уничтожить его одним могучим ударом. Изучив обстановку, военачальник вернулся к войскам и приказал выдвинуть вперед элефантерию.
Погонщики слонов решили выслужиться перед Гасдрубалом и сразу же погнали животных в атаку. От их топота задрожала земля, от трубного рева гигантов заложило уши. Увидев, что на них надвигается лавина разъяренных слонов, велиты не стали вступать в безнадежный бой, а сразу же обратились в бегство. Увидев, что противник стремительно отступает, Гасдрубал приказал перейти в наступление всей армии, и карфагеняне дружно пошли вперед. К этому моменту велиты успели добежать до рва и спрыгнуть в него, а гастаты приготовились к отражению атаки и изготовили копья к броску.
Слоны приближались. Когда до римских рядов оставалось совсем недалеко, на башне Панорма пропела труба, и пустые стены города внезапно ожили, явив изумленному Гасдрубалу множество воинов. Легковооруженные пехотинцы, укрывшиеся за парапетом и зубцами, поднялись во весь рост, и воздух загудел от сотен дротиков, пущенных умелыми руками. За первым броском последовал второй, третий… Эхо от рева раненых животных прокатилось по улицам Панорма, отразившись от стен домов и храмов. В это время элефантерия приблизилась к гастатам, и только теперь погонщики заметили, что дальнейший путь им преграждает ров. Возникла заминка, которой римляне и воспользовались. Послышались команды центурионов, и легионеры метнули пилумы, целя в слонов и погонщиков. Вновь раздалась команда, и гастаты сделали новый бросок. По приказу Метелла у подножия стен было сложено множество копий, поэтому римляне безнаказанно поражали противника, сами оставаясь для него недосягаемыми. Метательные снаряды градом сыпались со стен на элефантерию, сея сумятицу и панику в ее рядах. Мало того, укрывшиеся во рву велиты метали дротики в столпившихся на краю широкой траншеи животных и многих из них поранили.
Большинство слонов были ранены, многие погонщики погибли. Истекающие кровью звери пришли в исступление, перестали слушать команды и бросились прочь, подальше от стен и рва. Бегущие слоны врезались в ряды наступающей карфагенской армии и произвели там страшное опустошение. Передние ряды ливийских копейщиков были растоптаны, их строй прорван в нескольких местах, обезумевшие животные давили людей десятками, круша и сметая все на своем пути. Пехотинцы побросали оружие и обратились в бегство, спасаясь от разъяренных исполинов. Карфагенские всадники, увидев разразившуюся катастрофу, запаниковали, развернули коней и стали уходить с поля боя.
За всеми этими событиями Метелл по-прежнему следил с башни. Когда слоны побежали и смяли центр карфагенских позиций, консул резво сбежал вниз по каменным ступенькам и приказал открывать ворота. Взревели римские боевые трубы, тяжелые створы со скрипом распахнулись, и консул лично повел в атаку принципов и триариев. Из соседних ворот выплеснулась в поле римская кавалерия, она быстро перешла ров по заранее перекинутым деревянным мосткам и устремилась в бой. Десяток слонов погонщики сумели развернуть и направить на римлян, но легионеры окружили их со всех сторон и забросали копьями, уничтожив животных вместе с вожаками. Бегство карфагенян стало всеобщим, боевой клич легионеров заглушал рев слонов и истошные крики разбегающихся в разные стороны пунийцев. Римляне убивали врагов сотнями, многих захватили в плен. Пленников вязали веревками и гнали к городским воротам, длинные вереницы карфагенских солдат со скрученными за спиной руками понуро брели в сторону Панорма. Множество слонов, оставшись без погонщиков, бродили по полям, римские всадники брали их в кольцо и сгоняли в одно место. Сражение при Панорме закончилось, жалкие остатки карфагенской армии разбежались по окрестностям и стали пробираться на запад. Гасдрубал загнал коня и укрылся за крепкими стенами Лилибея, где стал лихорадочно придумывать различные оправдания своим действиям в проигранном сражении.
После этой победы для римской армии открылась прямая дорога на Лилибей и Дрепан.
Грандиозная битва при Панорме завершилась сокрушительным разгромом карфагенской армии. Было две причины, почему сражение так убедительно закончилось в пользу римлян, – военный талант Луция Цецилия Метелла и полная безграмотность его карфагенского оппонента. Метелл проявил себя как блестящий тактик, сумел навязать противнику свою волю и в итоге заставил врага совершить массу ошибок. Причем ошибок грубейших и непростительных для командующего уровня Гасдрубала. Судя по всему, карфагенский полководец даже не удосужился как следует осмотреть место предстоящей битвы, удовлетворившись беглым обзором. Об этом свидетельствует тот факт, что он не заметил выкопанный римлянами ров. Сам ход сражения подтверждает эту догадку, поскольку если бы командующий пунийской армией знал о траншее, то никогда бы не бросил слонов в безумную атаку. Метелл обманул Гасдрубала как ребенка. В очередной раз неподготовленность и некомпетентность высшего командного состава привела карфагенскую армию к позорному и необязательному поражению. Но до конца войны пунийцы так и не сумеют справиться с этой напастью. Пройдет много лет, прежде чем Гамилькар Барка сумеет воспитать достойные кадры и вырастит целую плеяду выдающихся военачальников, способных бить в открытом бою непобедимые римские легионы.
Наиболее четкое описание битвы при Панорме дает Фронтин: «Консул Л. Метелл, ведя войну в Сицилии против Гасдрубала, был очень осторожен ввиду наличия у противника большего войска и 130 слонов. Сделав вид, что он не уверен в себе, он удерживал войска в Панорме и устроил впереди своей стоянки огромных размеров ров. Обозрев затем войско Гасдрубала, где на первой линии стояли слоны, он приказал гастатам пустить дротики в зверей и немедленно ретироваться за укрепления. Раздраженные такой издевкой, вожаки погнали слонов в самый ров: как только они туда попали, воины часть их убили копьями, часть погнали назад на своих, расстроив ряды неприятеля. Тогда Метелл, только этого и ждавший, вырвался со всем войском вперед и, напав на пунийцев с фланга, разгромил их и завладел даже слонами» (Frontin. II, V, 4). В дальнейшем Фронтин добавит еще один штрих: «Римляне, защищавшие Панорм, когда Гасдрубал начал осаду, нарочно поставили на стенах мало защитников. Когда, учитывая их малочисленность, Гасдрубал неосторожно подступил к стенам, римляне совершили вылазку и разбили его» (Frontin. III, XVII, 1). Римский полководец сумел убедить карфагенского командующего в том, что боится встречи с его армией в полевом сражении, и тем самым внушил Гасдрубалу уверенность в легкой победе. Отказавшись от тщательной разведки местности, пунийский военачальник был нещадно бит Метеллом. Умелые и продуманные действия римского полководца явились для Гасдрубала полной неожиданностью, и он не сумел на них адекватно ответить.
В рассказе Павла Орозия указывается как численность карфагенской армии, так и количество убитых пунийцев: «В консульство Л. Цецилия Метелла и Г. Фурия Плацида Гасдрубал, новый главнокомандующий карфагенян, подплыл из Африки к Лилибею со ста тридцатью слонами и более чем с тридцатью тысячами всадников и пехоты и тотчас же при Панорме вступил в сражение с консулом Метеллом. Однако Метелл, прежде испугавшийся огромной силы зверей, проведя важное совещание, [в начавшейся битве] кого-то из них обратил в бегство, кого-то обрек на смерть и в результате без труда, хотя сила врагов и была велика, одержал победу. Двадцать тысяч карфагенян пало в сражении, двадцать шесть слонов было убито, сто четыре были захвачены и, проведенные по Италии, явили италийским народам великое зрелище. Гасдрубал бежал с немногими [воинами] в Лилибей и заочно был приговорен нумидийцами к смерти» (IV, 9, 14). Орозий вновь обращает внимание читателей на тот страх, что испытывали римляне перед боевыми слонами Карфагена. Гасдрубал же был приговорен к смерти не нумидийцами, а правительством Карфагена, здесь Орозий просто ошибся.
Полибий никаких данных о количестве убитых и раненых с обеих сторон не приводит. Он лишь констатирует, что десять слонов вместе с погонщиками были захвачены во время сражения, а остальных животных, оставшихся без вожаков, поймали после битвы римские всадники (I, 40). Евтропий краток, главное внимание историк акцентирует на потерях карфагенской армии: «В консульство Луция Цецилия Метелла и Гая Фурия Плацида Метелл в Сицилии одолел африканского полководца, который прибыл со ста тридцатью слонами и большим войском; Метелл перебил двадцать тысяч врагов, захватил двадцать шесть слонов, а остальных слонов, которые разбежались, с помощью нумидийцев, союзников римлян, собрал и провел по Риму в пышной процессии; тогда 130 слонов заполонили все дороги