Римляне приближались к Карфагену, и наконец, при
Сражение началось движением вперед карфагенских слонов, но, устрашенные криком римлян, эти животные повернули назад, смяли карфагенскую конницу и привели ее в полнейший беспорядок. Римская кавалерия воспользовалась этим, стремительно ударила на карфагенскую и прогнала ее с поля сражения.
Предстоял бой пехоты. Сципион приказал гастатам сомкнуть интервалы к середине и, имея в полутораста шагах за ними принципов, повел атаку на первую Ганнибала. После упорного боя она была опрокинута и, думая, что вторая линия умышленно ее не поддержала, бросилась на карфагенян, но вскоре наступающие гастаты заставили их опомниться и обратиться на римлян; бой закипел с новым ожесточением, тогда Сципион приказал принципам, разделившись пополам, выйти на фланги гастатов и охватить карфагенян. Это решило участь первых двух линий армии Ганнибала; в страшном беспорядке они бросились назад, угрожая смять третью линию – ветеранов, так что Ганнибал приказал им встретить беглецов оружием.
Наступил решительный момент боя. Сципион, видя, что линия ветеранов Ганнибала длиннее фронта гастатов и может их охватить, приостановил наступление и, разделив вторую и третью линии (принципов и триариев) пополам, приказал им пристроиться к флангам гастатов в виде сплошной фаланги без интервалов. Теперь 30 000—35 000 римлян, фалангою в 10 шеренг глубины, двинулись на 24 000 ветеранов Ганнибала, сотрудников его славных походов, которые были подкреплены псилитами.
Удар был страшный; с обеих сторон тактика и вооружение были одинаковы, храбрость тоже; победитель должен был стать обладателем всего мира. После ожесточенного и продолжительного боя уже римские легионы начали сдавать, когда появилась на поле сражения вернувшаяся назад кавалерия Лелия и Массинисы и атаковала карфагенян с тыла. Это дало совершенно новый оборот бою: карфагеняне были окружены и почти целиком уничтожены. Карфагеняне потеряли до 20 000 убитыми и ранеными и до 15 тыс. пленными; урон римлян [составил] до 2000 человек.
Сражение при Заме, замечательнейшее из боев классической древности, представляет высокий образец руководства боем с обеих сторон. Слоны принесли армии Ганнибала такой же вред, как некогда армии Дария при Гавгамелах. Сципион искусно маневрирует линиями легиона, и необходимость этого маневрирования указала, что тактика легиона в манипулярном порядке отжила свой век. Для маневра необходимы тактические единицы самостоятельные, способные к выполнению всевозможных боевых задач. Появившаяся вскоре форма построения легиона по когортам решила этот вопрос.
Армия Ганнибала была разбита. Так кончилась Вторая Пуническая война.
Пятнадцать с лишним лет Ганнибал вел борьбу с Римом на его собственной территории. Хотя Рим и вышел из борьбы победителем, но поплатился за это очень дорого. Население его уменьшилось почти на четверть. Полагают, что около 300 000 погибло от меча карфагенян. В этом числе, конечно, главным образом, был цвет граждан, среднее сословие, составлявшее главный контингент воинов, и потому естественно, что эти потери вызвали изменение самой системы пополнения армии, а также в учреждениях, бывших основанием величия республики.
Потери Ганнибала были не менее значительны, но они слабее отразились на Карфагене. Ганнибал вернулся в 202 г. с 15 000 африканских войск; 25 000 перешли Альпы, и в течение 15 лет пребывания его в Италии он только после сражения при Каннах получил в подкрепление 4000 карфагенских войск. Полагают, что потери Ганнибала в боях были около 140 000 чел. и около 100 000 от болезней. Следовательно, он сумел извлечь из Галлии и населения Италии около 225 000 вспомогательных войск.