根据罗马与迦太基双方的条约,双方的势力范围以埃布罗河为界,但罗马人不甘心让西班牙的大部就此落入迦太基人的手中,因此,约前221年,罗马人诱惑埃布罗河以南的萨干坦背叛了迦太基,为自己在西班牙埃布罗河以南打下一个钉子。迦太基当然不允许这种情况的出现。于是,汉尼拔当即在前219年出兵,经过8个月的围城战后,萨干坦被攻克,为了惩治这种严重的叛变,居民被全部屠杀或变卖为奴隶。罗马人一开始并不打算加以援助,毕竟这种援助是不合条约的,而且罗马人对于汉尼拔的突然行动也没有做好军事上的准备。但是到了前218年,罗马人已经做好了各种准备之后,他们派出了使团前往迦太基,要求迦太基承认罗马人的权利,分界线南移并交出汉尼拔和他的部属。这种无理要求当然遭到了迦太基人的拒绝,于是第二次布匿战争爆发。
罗马人一厢情愿的以为战争只会在西班牙和迦太基的领土上爆发,他们认为,罗马在北方已经打败高卢,并建立了多个殖民地作为外围的防御圈;南部的“大希腊”和西西里诸港口不仅有陆军的坚强防御,而且罗马舰队控制了整个中地中海,迦太基人几乎根本没有可能登陆。罗马人可以以西西里为前进基地,攻击迦太基人的本土。然而,元老院正确的估计到了迦太基人的懦弱,却从未意识到汉尼拔的天才会给这场战争带来怎样的变数。
汉尼拔或许是那个时代西方世界最伟大的战争英雄。即便数百年后的罗人也对他畏惧有加,他充分认识到看似强大的罗马在胜利光辉下隐藏的巨大危机,因此,在西班牙的战事还远未结束时,他就决定出奇兵越过当时公认为是不可逾越的天险的比利牛斯山和阿尔卑斯山,直接攻入意大利本土——因为这是敌方根本想不到的。
约前218年春,汉尼拔率领9万步兵、1.2万骑手和37头战象开始出征,他先越过了比利牛斯山,在高卢地区建立了他的补给基地——高卢诸部落对于罗马人是极为仇视的,他可以信赖高卢人对他的兵力支援和粮食、武器的支援。罗马人此时已派出数支军队,一支开赴西班牙,攻击迦太基人的西班牙土地,并与西班牙人作战——罗马人背信弃义的产物,这场战争打了二十余年,罗马人损失惨重;一支开往西西里,计划入侵迦太基本土。在山南高卢站稳脚跟后,汉尼拔再次率领5万步兵、9000骑手——这是迦太基人最优势的兵种,翻越阿尔卑斯山,他不仅要接受天险、严寒的考验,还要与沿途怀有敌意的阿洛布洛克斯部落战斗。经过6个月的艰苦跋涉,他的步兵损失过半、骑手损失了约1/3,战象仅仅剩下一头,但成功的实现了战略奇袭,而罗马人此时仍然一无所知。










