札馬戰役

前因

公元前209年春天，大西庇阿率领大军到伊比利亚半岛，趁汉尼拔的弟弟哈斯德鲁巴战死，一举攻下迦太基在西班牙的重要据点新迦太基（今卡塔赫纳）。对汉尼拔而言，失去了唯一的后方基地，无疑是致命的打击。
罗马元老院最初受费边的影响，反对大西庇阿入侵迦太基的计划，认为其过于冒险，但是元老院最后同意了他的计划。公元前204年，大西庇阿率领七千名义勇军到达西西里岛，组成一只35,000人的大军开拔到北非，在各地展开杀戮、掠夺。迦太基元老院于是下达严命，要汉尼拔立刻返回祖国。
公元前203年秋天，汉尼拔终于离开纵横十六年的意大利。一直处于优势的汉尼拔明白，在这种情况下撤军绝对困难重重。

开战前双方的准备

汉尼拔带着剩下的兵马来到了札马平原。札马平原距离迦太基城西南尚有五天的行程。
此时汉尼拔拥有五万步兵、两千骑兵，而大西庇阿则有四万步兵和四千骑兵。
从数量来看，两军的兵力相当。但是汉尼拔从意大利带回来的兵马中，除了两万名是身经百战的老兵之外，其他皆是训练不足的士兵。尤其是马匹，不论质或量都居劣势。
反观大西庇阿的大军，自来到非洲之后，一连串的战斗不但吸取了丰富的作战经验，更是士气大振。其中由曾在迦太基奋勇杀敌，熟知迦太基战法的努米底亚王子马希尼萨所率领的东努米底亚精锐骑兵更是罗马军一大助力。