汉尼拔看到敌人已经上钩,便下令全军在河对岸列阵准备迎击西班牙联军,同时命令隐藏在森林里的骑兵从西班牙忍身后发起突袭。当西班牙联军大部分士兵已经跳入河中并向自己这边涉水而来的时候,汉尼拔的骑兵如同一把利剑狠狠地刺入西班牙联军的侧翼,顿时将还在渡河的联军士兵杀得人仰马翻,不少士兵直接被战马踩成了肉泥,而剩下渡河的士兵也被这波骑兵的突袭搅乱了阵型。
随着骑兵不断地冲阵与砍杀,处于河中艰难前行的西班牙联军只能加快向对岸前进,毕竟在水中西班牙士兵根本无法抵御迦太基人的进攻。这时汉尼拔命令麾下的远程士兵对着河中靠近的敌人不断进行射击。西班牙联军此时进退两难,在河中根本无法进行有效的抵抗,很快便在远程打击下伤亡惨重。汉尼拔此时也开始命令全军出击,对着快要上岸的西班牙联军发动了反攻,将联军士兵又重获新赶回来了河里。联军士兵的士气跌落到谷底,前有步兵拦截,后有骑兵突袭,很快就溃败了。汉尼拔趁机率军掩杀,大量的联军士兵被淹死或者杀死在河里,只有少量士兵逃出生天。
此战之后西班牙联军都知道了汉尼拔的大名,就如同听到他父亲哈米尔卡的名字一样,再也不敢与他交锋。汉尼拔借着自己的名声和胜利,不断蚕食和攻掠西班牙部落,对于那些主动投降的,汉尼拔既往不咎,但对于那些冥顽不灵的,则直接屠城灭族。在汉尼拔势如破竹的攻击下,周围西班牙各部落纷纷投降或者被征服,此后汉尼拔又率军征服了西班牙中部高原地区,至此西班牙半岛基本被征服,汉尼拔也就此拥有了一支10万多人的部队。汉尼拔觉得复仇罗马的时机已经成熟,但是现在罗马和迦太基还处于和平时期,国内也没有开战的声音,所以汉尼拔不敢贸然开战。目前汉尼拔就缺一把火,一把可以烧到罗马的大火。不过这点对于这位战略大师来说并不是什么难事。
西班牙半岛东部沿海的中部有一座城市叫做萨贡托,该城是罗马的新同盟,当年哈斯德鲁巴和罗马签订协议的时候,该城市还没有和罗马结盟,所以汉尼拔如果派兵征讨该城池并不算违反协议。因此汉尼拔可以心安理得地派兵攻打萨贡托。
作为军事统帅他最关心的永远是敌人当前的军事战略。据提供的情报得知,此时罗马正陷入北部和高卢人的战争中,虽然以罗马人的实力最终一定能平定高卢人,但是会消耗罗马大量的兵力,因此罗马没有多余的战力来支援萨攻托。
汉尼拔权衡利弊后,决定攻打萨贡托。他率军把该城围得水泄不通,但是他仍然露出破绽让萨贡托地使臣溜出去向罗马求援。汉尼拔就是要让罗马知道萨贡托被攻击,然后让罗马主动和自己开战。
使臣将消息告诉罗马后,罗马元老院万分惊讶,但是目前他们的首要目标是镇压和巩固北方的高卢人,至于萨贡托罗马确实没有多余的兵力。但为了不让自己的盟友失望,元老院派出了使臣分别前往汉尼拔和北非的迦太基。使臣态度坚决,以战争相威胁要求汉尼拔停战,但是汉尼拔早有预谋,他要的就是激怒罗马,和自己再次开战,于是汉尼拔也强硬地回绝了罗马使臣停战的提议。
。