ザマの戦い
スキピオ、ハンニバルの両名とも、当時の戦闘において騎兵が非常に重要であることを認識していた。ハンニバルはヌミディアを失ったことによる騎兵不足を補うため、逃亡中であるシファックスの息子に参戦を求めると、息子は騎兵2000を率いて参戦すると約束した。スキピオ側は、王になったばかりのマシニッサに参戦を求め、マシニッサは歩兵6000・騎兵4000で参戦すると約束した。
両軍は、これらヌミディアからの援軍と早めに合流するため、近づきつつも西へと行軍した。ハンニバルは行軍中、カルタゴ政府からの「早くスキピオを撃破せよ」との命令を拒絶している。
カルタゴ軍
歩兵 - 50,000名
騎兵 - 3,000名
戦象 - 80頭
ハンニバルは、最前列に戦象を配置、その後方に三列の歩兵戦列を並べ、その両翼には半数に分けた騎兵を置いた。カルタゴ軍の歩兵は、リグリア人やケルト人からなる傭兵、リビア人およびカルタゴ市民兵、イタリア以来の古参兵という三種類に大別できる。ハンニバルはこれを戦力として信頼できない順番、すなわち傭兵、市民兵、古参兵の順番に並べていた。これまでの戦術の要となっていた騎兵戦力で劣るハンニバルは、歩兵による中央突破を意図しており、そのための総予備が信頼する古参兵であった。前二列は敵の疲労を誘うためのいわば捨て石であり、戦象も敵の戦列を混乱させるためであった。歩兵戦列の第一列はマゴ、第二列はハンノ・ボミルカルに指揮させ、ハンニバル自身は第三列の指揮を執った。