迦太基在初春时遭遇罗马军队的突然袭击一败涂地,到了春季中期,已经恢复了元气。不仅四散逃窜的残兵回来了,而且,来自西班牙的四千新雇佣兵也已到首都的港口,合计战斗力达到三万人。他们再次请求努米底亚国王出兵支援。难拒妻子的苦苦哀求,西法克斯再次答应率军加入迦太基方面的战斗。但是,他带的兵力大大减少。
夏初,在靠近努米底亚王国的内陆平原,迦太基军和努米底亚军会合了。两军在努米底亚领地附近会合,是因为西法克斯遭到西庇阿的夜袭,失去众多士兵后,虽然答应参战,却始终拖延出征的时间。再次领命担任迦太基军队指挥的吉斯戈只好用军队迫使他出阵。
获悉敌人会合后,西庇阿没有坐等敌人的进攻。他率领全军,向另一个地方撤去。罗马军队的兵力不及迦太基·努米底亚联军的一半,但是,他决定通过会战一决胜负。
两军布下的阵型看上去都是很常规的阵型。但是,战斗开始后,采用常规战术作战的只有吉斯戈和西法克斯所率的迦太基·努米底亚联军。
根据常规战法,战斗通常始于轻装步兵间展开的激战。但是这一天,却是在罗马骑兵的猛烈进攻下开始了战斗。西法克斯率领的努米底亚优秀的骑兵被抢了先机,战斗力大大下降。他们不由自主的向后退去,却遭到进一步的追击。位于迦太基·努米底亚联军中央的步兵军团两翼失去了保护。
西庇阿等待的就是这个时机。他一声令下,在西西里经过充分训练的步兵们,按照指令,齐刷刷地开始了进攻。
轻装步兵和重装步兵前卫新兵阻止敌人中央的进攻,与此同时,重装步兵中部的熟练兵绕到敌人步兵右侧,后卫老兵绕到敌人的左侧。敌人步兵三方被围,活动空间不断缩小,难以充分施展拳脚。刚从西班牙来的四千雇佣兵被全歼。其他步兵中的大多数人战死,战场上堆起了尸山。
但是,迦太基·努米底亚联军的骑兵不愧是优秀的努米底亚骑士。由于骑兵之间始终未能决出胜负,罗马军最终没有实现四面包围的战术。因为有一方未能合围,吉斯戈和西法克斯成功逃出了包围圈。吉斯戈逃回首都迦太基,西法克斯逃回了努米底亚领地内。
这一天,西庇阿没有停止战斗,他要乘胜追击。雷利乌斯和马西尼萨率领的罗马军骑兵追着西法克斯,长驱直入努米底亚境内,俘虏了米底亚国王。