Во время затянувшегося ожидания решающей битвы силы римлян истощались быстрее, чем у пунийцев в лагере Ганнона, однако у осажденных в Акраганте таяли еще быстрее, чем у римлян. Об этом Ганнибал сообщал Ганнону посредством специальных сигнальных огней на крепостных стенах. В конце концов все более тревожные сигналы заставили карфагенян решиться на генеральное сражение, к которому стремились и римляне. Эту битву при Акраганте Полибий описал следующим образом: «Противники вывели войска на разделявшее лагеря пространство и ударили друг на друга. Сражение длилось долго, пока наконец римляне не обратили в бегство карфагенских наемников, сражавшихся в первых рядах. Когда бежавшие устремились на слонов и на задние ряды, все войско финикиян пришло в смятение. Бегство сделалось всеобщим, большинство карфагенян были истреблены, и лишь немногие спаслись в Гераклее; римляне захватили большую часть слонов и весь обоз» (Polyb. I, 18, 8—11). Поражение пунийцев было разгромным, хотя общие потери римлян были также колоссальными – 30 тыс. пехотинцев и 1500 всадников (Diod. XXIII, 9, 1). Это помешало им преследовать отряд Ганнибала, который с наступлением ночи покинул осажденный город, перебрался через оба римских рва, забросав их плетенками с мякиной, и поспешно отступил. Обнаружив наутро бегство части акрагантского гарнизона, римляне слегка потрепали арьергард стремительно уходившего войска Ганнибала, а затем ворвались в оставшийся беззащитным Акрагант, захватив там более 25 тыс. пленников, которые все были обращены в рабство (Diod. XXIII, 9, 1).
Павел Орозий так в крайне сжатом виде описывает ход противостояния римлян и пунийцев в битве за Акрагант и подводит его итоги: «Консулы обнесли валом и насыпями Акрагант, город на Сицилии, и находившийся там гарнизон пунийцев. И когда осажденный таким образом Ганнибал Старший, полководец пунийцев, был доведен до крайней нужды, неожиданно появился Ганнон, новый полководец карфагенян, с [войском] в полторы тысячи всадников и тридцать тысяч пехоты, имея также тридцать слонов, и на некоторое время он отсрочил захват города; однако вслед за этим город был взят. Пунийцы, поверженные и сокрушенные в страшной битве, потеряли одиннадцать слонов, акрагантяне были все проданы в качестве пленников; Ганнибал Старший в результате внезапной вылазки спасся с немногими бегством» (Oros. IV, 7, 4).
Падение Акраганта привело к переходу на сторону римлян еще нескольких значимых сицилийских городов, расположенных в глубине острова. Ганнон, допустивший столь болезненное поражение, был отозван в Карфаген, где его лишили гражданских прав и оштрафовали на шесть тысяч золотых монет (Diod. XXIII, 9, 2). До этого, впрочем, он успел повоевать против новых римских консулов Тита Отацилия Красса и Луция Валерия Флакка в 261 г. до н. э. По крайней мере Фронтин приводит следующий рассказ, наглядно показывающий отношение карфагенских полководцев к собственным наемникам и способы решения возникавших с ними проблем: «Карфагенский полководец Ганнон в Сицилии узнал, что около четырех тысяч галльских наемников сговорились перебежать к римлянам, так как они несколько месяцев не получали жалованья. Наказать их он не решался, боясь мятежа. Он поэтому обещал щедро вознаградить их за просрочку. Когда галлы благодарили его за это, он обещал им и в подходящий момент предоставить возможность пограбить. Вместе с тем он направил преданнейшего казначея к консулу Отацилию; выдав себя за перебежчика по вымышленным мотивам, он донес, что в ближайшую ночь четыре тысячи галлов будут высланы для грабежа и их можно будет перехватить. Отацилий, с одной стороны, не сразу поверил перебежчику, однако, с другой стороны, не счел возможным оставить такое дело без внимания. Он расположил в засаде отборнейший отряд. Галлы были перехвачены, и Ганнону от этой хитрости была двойная польза: галлы нанесли римлянам урон и сами все были перебиты» (Frontin. III, XVI, 3).