Прибывший Ганнибал, трезво оценивая положение дел, просит карфагенский сенат заключить немедленный мир, пока он возможен на приемлемых условиях. Но сенаторы, уповая на непобедимость своего великого полководца, требуют сражения. Дилетанты в военной области, они преувеличивают роль спешно набранной армии – ведь количественно она не уступает римской. Действительно, обе армии насчитывают каждая по тридцать пять – тридцать восемь тысяч человек, а ведь при Каннах римлян было в полтора раза больше… Но римская армия – почти сплошь ветераны. Это победители при Илипе, это люди, громившие карфагенян последние два года. Наконец, два римских легиона составляют участники битвы при Каннах. И это, безусловно, далеко не худшие воины, раз они смогли вырваться из каннской мясорубки. Кроме того, эти солдаты всеми силами стремятся загладить свою невольную вину за то страшное поражение. К тому же их почти пятнадцатилетний боевой опыт говорит сам за себя. А третья часть карфагенской армии – разношерстные наемники, не составляющие единого целого. Пятнадцать тысяч солдат – новобранцы, только что мобилизованные в Карфагене. Нумидийская конница Сифакса значительно уступает конному войску Масиниссы: две тысячи против шести. Правда, армия Карфагена насчитывала еще и восемьдесят слонов. Боевые слоны являлись грозной силой, но они были совсем недавно приведены из внутренней Африки и еще плохо обучены. Лишь пять-семь тысяч человек в составе карфагенской армии представляли собой действительно серьезную силу, поскольку являлись подлинными ветеранами Ганнибала.
Эту непростую ситуацию отлично понимал великий полководец, но совершенно не осознавал карфагенский сенат. И под давлением политиков Ганнибал вынужден был согласиться определить судьбу войны в последнем, решающем сражении. Осенью 202 года до н. э. обе армии заняли боевые позиции недалеко от местечка Зама, в ста-ста пятидесяти километрах западнее Карфагена.
На поле боя Сципион поставил впереди манипулы гастатов, на некотором расстоянии один от другого, за ними – принципов, но не напротив промежутков в передних рядах, а за самими гастатами, чтобы иметь возможность пропустить через эти интервалы вражеских боевых слонов. Последними стояли триарии – испытанные ветераны. Манипулы триариев были немногочисленны, каждый состоял всего из одной центурии, но это была грозная сила, потому что в бою один ветеран стоил нескольких молодых солдат. Конница построилась на флангах. Особенно сильной была ее нумидийская часть, так как нумидийцы умели маневрировать с невероятной быстротой. Они утомляли неприятеля беспрерывными атаками, нападая со всех сторон. Карфагеняне выдвинули слонов, отряды наемников и легкую пехоту вперед, а вторую линию, в основном вновь набранное карфагенское ополчение, расположили в двухстах метрах за первой. Ганнибал решил отвлечь с поля сражения конницу противника, а затем окружить римскую пехоту. В случае неудачи он рассчитывал отвести карфагенскую армию в укрепленный лагерь. В третьей линии стояли ветераны Ганнибала.
Бой начали карфагеняне одновременной атакой кавалерии с флангов и слонов в центре. Римская кавалерия, более многочисленная и сильная, конечно, отбросила конницу карфагенян и бросилась в погоню, быстро исчезнув из поля зрения. Так расчет Ганнибала удался, и численный перевес на поле боя перешел к нему. В это время в центре римлян атаковали слоны. Но Сципион назначал для борьбы с ними специальных метальщиков, которые метали в слонов дротики и производили сильный шум с помощью труб и рожков, пугая животных. В результате слоны повернули назад и стали топтать свою же пехоту. Ганнибал продолжил пехотную атаку в центре. Но первую линию войск Ганнибала составляли многочисленные отряды наемников; они не сумели выдержать рукопашной борьбы с легионерами, а также неожиданной атаки собственных отступающих слонов, и быстро бежали, обтекая фланги двигавшейся вслед за ними второй линии карфагенской армии.