Armia Scypiona Starszego liczyła około 25 tysięcy żołnierzy pieszych, wspomaganych przez jazdę numidyjską, która zwykle walczyła po stronie Kartagińczyków, tym razem jednak miało ich tam zabraknąć (pozyskano tylko niewielkie oddziały numidyjskie). Hannibal zebrał około 50 tysięcy ludzi – w tym 15 tysięcy weteranów zahartowanych w kampanii italskiej oraz korpus 80 słoni bojowych. O wyniku bitwy zadecydowała jakość bojowa legionów rzymskich, skuteczna taktyka unikania konfrontacji z szarżującymi słoniami bojowymi i umiejętne użycie jazdy przez wodza Rzymian.
Bitwa Ustawienie wojsk Scypion uformował swe wojska w trzech tradycyjnych szykach, nazywanymi kolejno hastati, principes i triarii. Oddziały ustawione były w formie prostokątów z odstępami między nimi, tak aby umożliwić ruch poszczególnych formacji, a także z myślą o słoniach bojowych, które Hannibal zamierzał użyć w starciu. Scypion na lewym skrzydle ustawił swoją jazdę, prawe skrzydło zajęła jazda numidyjska pod wodzą Masynissy. Cała armia z lotu ptaka wyglądała jak szachownica. Hannibal również ustawił żołnierzy w trzech liniach. Pierwszą tworzyli najemnicy z różnych stron świata. Drugą tworzyły autochtoniczne oddziały kartagińskie i afrykańskie, niedoświadczone w boju. Na tyłach ustawił zaufanych weteranów z kampanii w Italii.