二十七岁的罗马军队总指挥官命令全体轻装步兵和受感召而自愿加入罗马军队的西班牙部族士兵首先过河,向在开阔地完成布阵的敌军前卫发起进攻。这是诱饵,目的是引诱敌军主力出阵。哈斯德鲁鲍尔上钩了。但是,西庇阿没有给敌军主力在开阔地展开部署的时间。
正在河这边待命的全体重装步兵和骑兵,潮涌似的开始过河。西庇阿指挥右翼,雷利乌斯负责左翼。两支军队绕到了仍在整理阵型的敌军主力侧面。一支军队尚未完成布阵时,指令无法顺利传达。同时受到前方、右侧和左侧三方的进攻,迦太基士兵顿时乱作一团,彻底崩溃了。背后的营地,在平时起着保护作用。但此时,在一次次发起快攻的罗马军队攻势下,这个营地就像堵在迦太基军后面的一堵墙,严重妨碍了他们的行动。
战斗非常激烈。战斗的主动权始终掌握在西庇阿的手中。作为迦太基军队的象征,象群和优秀的骑兵战斗力尚未发挥作用就已经被击垮。西庇阿瓦解敌军的主要战斗力的战术十分奏效。哈斯德鲁鲍尔担心营地被围,导致全军覆没,不得不放弃营地脱离战场,未入维克拉城就逃走了。
这一天的维克拉之战中,迦太基方面战死八千人,被俘一万二千人。西庇阿方面的牺牲微不足道,甚至不值一提。西庇阿没有乘胜追击,因为他担心途中会遭遇迦太基的另一支军队。他不能犯其父亲和叔叔犯过的同样错误。
然而,这成了持不同观点的古今历史学家们或谴责或为西庇阿辩护的由头。
如何处置这一万二千名俘虏?西庇阿面临汉尼拔曾有过的相同问题。首先,西庇阿无偿释放了俘虏中的西班牙人。其次,他把迦太基俘虏送往罗马。在罗马,等待他们的命运是被卖身为奴。
俘虏中有一个少年。据说,他出身在北非的努米底亚,父母双亡。来西班牙是为了投奔年轻的叔父。一问其叔父的名字,少年回答说是马西尼萨。
努米底亚王子马西尼萨是受雇于迦太基军队的努米底亚骑兵队长。正是他在三年前伏击西庇阿的父亲,致使他战死沙场。西庇阿问少年想不想回到叔父的身边。少年眼里含着泪,回答说想。
西庇阿让部下给这个少年披上罗马式短衣和带金扣的皮带以及一匹马。又派了一队骑兵,把这个少年送到了他想去的地方。
这位年轻的罗马统帅下的这步棋是其他的罗马指挥官所没有人愿意尝试的。对此,马西尼萨的反应会怎样,此时尚不得而知。