西庇阿率领的罗马军队中有他自己从意大利带来的一万一千人和前一年克劳狄·尼禄被紧急派往西班牙时带来的一万人,加上不成完整建制的七千人,共计二万八千人。若与迦太基的一支军队作战,双方可谓势均力敌。但是,一旦迦太基方面三支军队合而为一,那么罗马军队一定会寡不敌众。
迦太基的三支军队分别在相隔很远的地方越冬。一支在西班牙中部,距离迦太基军在西班牙的根据地卡塔赫纳有十天的行程。一支在西班牙南部直布罗陀海峡附近,另一支在现属于葡萄牙的塔沟的河口附近。三支军队彼此之间的距离都需要十天的行程。这就是汉尼拔在西班牙的大本营的迦太基军队状况。西庇阿接受的任务就是在这种形势下,率领退回埃布罗河以北的罗马军队扭转被动的战局。
公元前209年,西庇阿在西班牙开始了行动。此时尚未到执政官费边和弗尔维乌斯二人始于3月15日的任期日。
西庇阿把防守根据地塔拉戈纳以及周边的任务交给西勒诺斯后,率领全体士兵向南渡过了埃布罗河。他的好友、副将雷利乌斯率领满载士兵的三十艘战船同时南下。清楚这次行动目标的只有西庇阿、雷利乌斯和西勒诺斯三个人。要想欺骗敌人,首先必须瞒过自己人。
从塔拉戈纳到卡塔赫纳通常需要二十天时间。但是,经过一番急行军,西庇阿于七天后到达了卡塔赫纳的城墙前。直到此时,士兵们才弄明白了总指挥官的意图。
迦太基的三支军队早已知道西庇阿到了西班牙。只是他们没有料到西庇阿的行动如此之快,更没有料到他的第一个目标竟是自己的根据地。
迦太基的一支军队距离卡塔赫纳只有十天的行程。未满二十六岁的西庇阿是否能够成功实现他的战略意图,这取决于他的行动是否足够迅速。
当时的卡塔赫纳被称做“新迦太基”。它是哈米尔卡的女婿哈斯德鲁鲍尔,在汉尼拔的父亲死后,于公元前228年作为迦太基殖民地西班牙的首都建起来的。这座海港城市有效利用了周围达四公里的海角。西南两侧面海,北侧是一个海湾,只有东侧与陆地相连。在西班牙开采的矿产及农耕作物都先集中到卡塔赫纳,而后从海路运往迦太基国内。这里同时也是汉尼拔一家越冬的地方。在城墙环绕的海角一端,有一座极尽奢华的城堡,令丘周围其他景象黯然失色。汉尼拔从十九岁开始直到进攻意大利,在这座城堡内,渡过了十年时光。对汉尼拔一家来说,他们的家就在这里,而不是迦太基国内。卡塔赫纳有四千名士兵防守。只留下四千士兵防守是因为这里三面面海,曾经在战斗中一直占优势的科尔内利乌斯兄弟俩都未敢尝试攻打卡塔赫纳。
结束了一天的行军后,按规定,罗马士兵首先要做的事情是依照规矩搭建宿营地。这是众所周知的。所以,当卡塔赫纳守兵看到敌军突然出现在城下,虽然很惊慌,但由于此时已日近黄昏,而略感心安。因为他们认为罗马军队一定会首先搭建宿营地。然而,他们的希望落空了。