ザマの戦い
戦いは戦象による突撃で始まった。しかし、スキピオの事前の配置が活き、戦象はローマ軍の隊列の隙間を通り抜け、突撃は大きな効果をもたらさなかった。前進以外の行動が不可能である戦象は、方向転換のために停止したところを、ローマ軍軽装歩兵の投槍や鉦によって混乱し、無力化してしまった。戦象の突撃失敗を見たハンニバルは、自軍の騎兵を後退させた。ローマ軍騎兵は直ちに追撃を開始したが、これはハンニバルによる陽動作戦だった。ハンニバルは自軍の騎兵戦力が劣勢であることを知り、偽装後退させることによって、追撃に向かうローマ軍の騎兵を戦場から引き離そうとしたのだ。この狙いが成功したカルタゴ軍は、騎兵の脅威を気にすることなく、歩兵同士の戦いに移行することができた。
しかしながら、歩兵同士の戦いは、傭兵からなるカルタゴ軍に対し、質で勝るローマ軍が有利だった。カルタゴ軍第一列の傭兵は、ほどなく圧倒されだした。ハンニバルは第二列の市民兵に攻撃を命令したが、大半が新兵で構成されていた第二列は、怖気づいて前進を拒否した。そのため、第一列と第二列の間で同士討ちまで発生した。やむなくハンニバルは事前の予定よりも早く第三列の古参兵を投入することにした。