战斗刚开始,雷利乌斯和马西尼萨率领的罗马骑兵果断出击。此时,迦太基方面的骑兵已经渐露败相。迦太基军队中央的两翼完全暴露开来。
西庇阿没有放过这一绝好时机。他下令重装步兵从正面和两侧三个方向同时向迦太基军队发起攻击。
看到罗马军队主力从三个方向同时攻来,可以说迦太基军队中的乌合之众雇佣兵们彻底慌了神。眼看正面和左右都被包围,无法脱身,只有转身向后。那是唯一没有被包围的方向。然而,汉尼拔的老兵早已持刀等候在那里。汉尼拔有令,试图临阵脱逃的士兵,无论是谁,格杀勿论。
逃跑路线被切断,他们只剩下拼死一战了。然而,在战场上,留下无数尸体的依然是他们一方。西庇阿引入的“西班牙剑”,在战场窄小的混战中发挥了极大的威力。
有人从罗马军队三方合围的包围圈中逃了出去。西庇阿对他们置之不理,没有追击。因为一路溃败的敌人,队形混乱,早已失去了战斗力。
战死的敌人身上流出来的血使草地变得很滑。堆积如山的敌人尸体甚至妨碍了罗马军队前行的脚步。
汉尼拔计划在罗马士兵出现疲态时投入自己的主力战斗力。此时,时机已到,他下令正在待命的一万五万个亲兵,编好队形出击。
看到迦太基的新战斗力从二百米开外的地方逼近,三十三岁的罗马将军决定出奇制胜,采用其他将军做梦都想不到的战术。面对步步紧逼的敌人,他下令全军重整阵型。
按照总司令官的命令,罗马重装步兵们首先把伤者运到后方,轻装步兵及努米底亚步兵把敌人的尸体归拢到一旁。然后,西庇阿把之前按纵队作战的新兵、熟练兵和老兵如下面第二张图所示,布置成横队,呈弓形状。对西庇阿来说,虽然士兵们已现疲态,但是,对于刚刚投入战斗的敌人老兵,他要采用新的战术,以便让人数占上风的优势充分发挥出来。同时,还可以为正在追击敌人骑兵的自己的骑兵队争取时间回到战场。
轻装步兵和努米底亚步兵回到战场后,全体步兵再次完成了从三个方向包抄敌人的包围圈。这时,雷利乌斯和马西尼萨率领的骑兵队在击溃敌人骑兵后,也回到了战场。
扎马平原重现了十四年前,坎尼平原上发生的事情。只是,对象变了。