公元前218…217年的那个冬季, 哈斯德鲁巴尔制订了水、陆联合进攻塔拉科的计划。刚刚开春,他就在伊比鲁斯河口附近集中起四十艘战船及一支大军,并在那里建立了一个设防营地。西庇阿显然对攻打哈司德鲁巴尔的坚固营地有顾虑,于是他决定进行海战。他带领他最精锐的部队登上三十五艘战船从塔拉科出发向伊比鲁斯河口驶去。
哈司德鲁巴尔得知罗马军队正在向他逼近,遂命令他的舰队出击。这场海战一开始,罗马舰队就击毁了两艘迦太基战船,杀死另外四艘船上的水兵并折断其全部划桨。眼看罗马军获胜,迦太基舰队一片惊慌。他们调转船头向岸边步兵掩护部队驶去,到河滩处停下,仓皇上岸逃命。罗马舰队追至河滩,夺得迦太基军弃下的战船二十五艘。然后,他们拖着缴获的船只凯旋而归。这次惨败之后,哈司德鲁巴尔返回了新迦太基城。
捷报传到罗马受到热烈的欢迎,因为这条喜讯传来的时间恰恰在特拉西梅诺湖惨败之后不久。尽管汉尼拔的胜利使罗马受过战争训练的人力出现紧张,但是罗马还是决定扩大格奈乌斯·;西庇阿已在西班牙取得的胜利。他们有正当理由相信,一旦攻克了汉尼拔在西班牙的基地,那么在意大利对付他就会比较容易了。老西庇阿因此奉命率领二十艘战船、八千名士兵并携带给养去与其兄弟会师。
公元前217年秋,西庇阿兄弟渡过伊比鲁斯河侵入迦太基领土。他们试图争取该地区某些西班牙部落的支持,但是成效甚微。他们一直挺进到萨贡托,然而考虑到自已力量不足,他们未去攻打这个要塞,而是在近处建起营地准备过冬。
第二年,西庇阿兄弟继续在伊比利亚部落中进行颠覆活动;而哈司德鲁巴尔正忙于镇压西班牙南部的叛乱,所以无暇顾及他们;因此双方都没有发动积极的攻势。然而到了公元前215年,哈司德鲁巴尔得到了来自迦太基的增援,使他有力量一边维护南部地区的社会秩序,一边对付罗马军。于是,他向伊比鲁斯北岸的德尔托萨挺进,去攻打正在围攻该城的西庇阿兄弟。
德尔托萨战役
两军兵力似乎旗鼓相当,双方各约两万五千人。哈司德鲁巴尔展开的战斗队形与汉尼拔在坎尼所采用的相似。战线中央,伊比利亚步兵呈一列横队;最精锐的非洲步兵分列左右两翼。努米底亚骑兵也在两翼,位置在非洲步兵之前。罗马军仍按常规排成三线方格编队,将骑兵部署在两侧。
哈司德鲁巴尔想要让坎尼大捷在这里重演,然而却希望落空。罗马骑兵有效地保护着两翼步兵,其战斗军团则猛冲迦太基战线的中央。等到努米底亚骑兵把罗马骑兵驱散,中央战斗已经定局。
哈司德鲁巴尔被彻底打败。那是一场苦战,双方死伤惨重。胜利的消息在鼓舞了罗马人,并部分消除了坎尼大败后在国民中出现的沮丧心理。
战火蔓延到西西里
后来,于夏季期间,迦太基试图夺取撒丁岛,然而未获成功。这是一项全面计划的一部分,按照这项计划迦太基要扩大战争从而对意大利形成包围圈。迦太基人还试图在西西里岛重新获得一个立足点。锡拉库萨的希埃罗王刚刚驾崩,由他十五岁的孙子希埃罗尼穆斯即位。他以两位长他一辈的王室姻亲为摄政,与迦太基签订了盟约。次年夏天,正当锡拉库萨准备攻打罗马在西西里岛上的某些殖民地时,希埃罗尼穆斯遇刺身亡。罗马利用随后出现的叛乱,派遣马尔克卢斯率顿一个军团去与由坎尼战役幸存将士组成的两个军团会合。这两个军团当时已在西西里岛上。还有一支一百艘战船的舰队也被派往该地区。
罗马的这些行动反而在锡拉库萨引起了不满。在公元前213年的选举中,亲迦太基派占了上风。汉尼拔的两个代理人希波克拉忒斯与埃庇西德斯当选为将军。那年暮春,马尔克卢斯攻占了莱昂蒂尼的锡拉库萨城。该城被洗劫一空,大约两千名亲迦太基分子被处决。这大大激怒了锡拉库萨城的市民,他们将城中亲罗马分子斩尽杀绝,把锡拉库萨牢牢地置于迦太基阵营之中。
包围锡拉库萨
罗马军立即从海、陆两面包围了锡拉库萨,并很快集中起一大批威力巨大的攻城器械。然而锡拉库萨人有一件秘密武器,那就是伟大的数学家与工程师阿基米德。他设计了各种巧妙的机关保护锡拉库萨城墙。不管罗马人用什么办法攻城,阿基米德的机关总是——将其挫败。最后,罗马人放弃强攻的努力,改为长期围困。
迦太基政府为锡拉库萨反叛罗马的事件所鼓舞,派遣希弥尔科率军赴西西里。他率领二万五千名步兵、三千名骑兵和十二头战象登上该岛,迅速攻占赫拉克雷亚、明诺阿以及西西里第二大城市阿格里真托。马尔克卢斯带领其部分兵力撤离对锡拉库萨城的围攻,去攻打其他锡拉库萨城镇。在阿克里莱,他打败了由希波克拉忒斯率领的企图与希弥尔科会师的一支军队。罗马向西西里派出了第四个军团。它逃过了希弥尔科的一次伏击,与包围锡拉库萨城的部队会合。
次年(公元前212年),马尔克卢斯设法攻击了锡拉库萨城的部分外围地区并顶住了锡拉库萨人要把他从那里赶走的努力。那年夏季,罗马人意外地获得天助。一场瘟疫把迦、锡军队几乎灭绝,希弥尔科与希波克拉忒斯也未能幸免。罗马军团的营地设在高处,因而受害较小。尽管如此,他们还是不能攻下锡拉库萨。
公元前211年,迦太墓向锡拉库萨派出一支庞大的护航运输队,由一百三十艘战船保护,指挥官是鲍米尔卡。这支船队在西西里岛东南角的帕基努斯岬附近的海面遇到逆风推迟到达。当封锁锡拉库萨的罗马舰队以一百艘战船出海迎战时,鲍米尔卡竟然吓得慌了手脚。他命令运输队返回非洲,自己率战船驶往意大利南部的塔兰托。
这样一来,锡拉库萨就孤立无援了。城中军民现在已接近绝粮。实际上迦太基正在阿格里真托组成另一支援军,但是锡拉库萨城里的人却不知道,守军中军纪已越来越名存实亡。一名伊比利亚军官打开了一扇城门,罗马军一涌而入,迅速占领了全城。
这样,经过两年半的围困,锡拉库萨终于被马尔克卢斯攻破。罗马士兵把希腊人建城以来三百年间于城中收藏下来的艺术珍品破坏、抢窃殆尽。阿基米德被一名不识泰斗的罗马士兵杀死,当时他正在思考一道几何题。
公元前210年,阿格里真托被叛卖给罗马。至此,西西里全岛成了罗马的一个行省。
老西庇阿兄弟在西班牙的失败
公元前215年至212年,罗马在意大利与西西里的军事形势不佳,然而在西班牙,西庇阿兄弟却深深侵入了迦太基的占领区。公元前216年迦太基派遣汉尼拔的三弟马戈率领一万二千名步兵、一千五百名骑兵、二十头战象以及六十艘战船去援助哈司德鲁巴尔保卫西班牙(这支军队原先是要派去增援汉尼拔的)。马戈抵达西班牙后不久,因为有几个实力雄厚的努米底亚部落在其国王西法克斯的带领下叛乱,哈司德鲁巴尔奉命率一个军团返回了非洲。
西庇阿兄弟立即加紧进攻。公元前212年,他们先攻占了萨贡托,然后又拿下了卡斯图罗。卡城是西班牙南部巴埃提斯河(即今之瓜达尔基维尔河)上游地区的一座重要城市。这样一来迦太基帝国在西班牙的三分之一领土落人了罗马之手。大量的伊比利亚部队被编入西庇阿兄弟率领的那两支罗马军队。
然而,公元前212年秋,有三支军队从迦太基返回西班牙。其中两支分别由汉尼拔的弟弟哈司德鲁巴尔与马戈指挥;余下一支由吉斯戈的儿子哈司德鲁巴尔指挥(因他与汉尼拔的兄弟同名,下文将称他为哈司德鲁巴尔…吉斯戈,以志区别)。这三支军队的确切人数已无法考证,可是其总兵力显然大于罗马军队的总和。公元前211年春,这三支军队向巴埃提斯河上游地区的罗马军发动进攻。那些伊比利亚士兵叛离西庇阿兄弟,重新加入迦太基军队。在前后相隔很短的两次单独但又十分相似的行动中,迦太基军打败了西庇阿兄弟。两人全都丧生。返回伊比鲁斯河的只有少量夺路逃命的残兵及老西庇阿原先留下守卫营地的一股小部队,其指挥官是提比略·;封特尤斯。罗马军残部在马尔基乌斯·;塞普提穆斯统领下坚守伊比鲁斯河北地区并使西班牙北部部落继续效忠罗马。这样,到公元前211年夏季为止,一方面随着卡普阿的陷落汉尼拔在意大利的命运正在走下坡路,另一方面罗马在西班牙的势力也确实变得非常薄弱。
然而,卡普阿被攻破后汉尼拔的活动范围仅限于意大利南部,罗马就能够腾出更多人来增援西班牙。公元前211年秋,凯乌斯·;克劳狄乌斯·;尼禄奉命率领一个军团以上的兵力赴西班牙。他利用手中的这部分力量以及原先在西班牙的兵力巩固了伊比鲁斯河北岸的地区。迦太基军正在伊比利亚人中征募新兵扩建队伍故而未向尼禄挑战。
大西庇阿崭露头角
然而,尼禄的防御政策未能博得罗马元老院的欢心。当年末,他们为西班牙部队选定了一位新指挥官:不久前战死在西班牙的将军老西庇阿之子大西庇阿。
此时,大西庇阿才二十多岁,但却已与汉尼拔及迦太基军交战有六年多。据说他在提基努斯战役中救他身负重伤的父亲的命时才十七岁左右。现在,他奉命率领一万步兵、一千骑兵赴西班牙代行其亡父之职。加上那里的原有兵员,他共有四个不足额的军团。
大西庇阿利用冬季进行练兵并就如何开始他在西班牙的第一个战役作了研究部署。三支迦太基军队的冬营相距很远:哈司德鲁巴尔在西班牙中部,马戈在直布罗陀附近,而哈司德鲁巴尔…吉斯戈则在西班牙西南部,离塔古斯河口不远。它们互相独立,各居一方。显然,汉尼拔在迦太基政府中的敌人不想让他的任何一个兄弟在伊比利亚握有全面指挥权。
西庇阿决定进攻迦属西班牙的心脏新迦太基城。最近的迦太基军队离它也有十天行军路程。然而,位于塔拉科附近的罗马基地距它就更远了。
袭击新迦太基城
新迦太基城建在一个海湾之中,狭窄的入口几乎完全被一个岛屿所封闭。由大陆向接近圆形的海湾中伸出一个半岛,这座要塞城就屹立在其上。该半岛将那个海湾分为两半,靠内陆的那一半是一个浅泻湖。这样,除了将半岛与大陆相连的狭窄地峡之外,新迦太基城处于海水环抱之中。同时,由于此城建在五个小山之上,陡峭的山坡构成了坚固城防工事的天然地基。
西庇阿尽其所能获取了有关新迦太基城的城防及城内局势的情报。公元前209年初夏,他以最高速度从塔拉科出发,同时命令舰队出动从海上封锁进入海湾的通道。他的这个行动使迦太基人措手不及。他趁机攻占了地峡,控制了从陆上通往该城的道路,并在那里建起一个设防营地。次日拂晓,罗马战船驶入海湾,包围该城全部滨海地区。
西庇阿的陆地部队试图攀墙攻城。他们打退了迦太基军的一次出击,但是无奈城墙太高,攻城部队对其一筹莫展。然而到了那天下午,正如西庇阿所期待的,泻湖退潮了。他派遣一队精兵携带云梯涉过水位变低的浅泻湖。使舰队向城东要塞佯动;吸引地峡守军的全部注意力于此方向,那队精兵则趁机在西首城墙架起云梯。
迦太基人未料到对方会从泻湖发动进攻,根本没有在这一侧城墙布防。不等他们认清事态,罗马军早巳翻越城墙并从背面攻击防守地峡要塞的迦太基军队。城门被打开,西庇阿的大军一涌而入,受到奇袭的迦太基城防司令投降。
西庇阿不想冒险与三支迦太基军中的任何一支交战,因为他预计迦军会以优势兵力合兵夹击他。于是,他在新迦太基留下一支守军,自已则返回伊比鲁斯河。用当年的剩余时间去巩固他与当地部落之间的关系。与此同时,那三位迦太基将军却显然断定他们对于新迦太基城的陷落无能为力。由于不愿意通力合作,他们各自在自已的地区中按兵不动。
巴埃库拉战役
公元前208年春,西庇阿感到自己已有足够的实力采取主动。他向南挺进逼迫迦军与他决战。他首先进攻哈司德鲁巴尔。哈司德鲁巴尔在卡斯图罗遭到奇袭后立即撤至巴埃库拉的一处坚固据点,同时向马戈送信要他火速北上增援。然而,西庇阿却决定在哈司德鲁巴尔有可能获得增援之前发动进攻。
罗马军可能以三万五千人对两万五千人的优势在人数上超过哈司德鲁巴尔军团,借以抵销哈司德鲁巴尔所占地形的天然优势。西庇阿派其轻武装步兵以宽阔正面发动进攻,用以吸引哈司德鲁巴尔的注意力,而他的重步兵则沿山坡向上攻击迦军两翼。哈司德鲁巴尔的反击抵挡不住罗马军的两面包抄。他意识到自己已无获胜希望,遂巧妙地将其部队及行李辎重平安撤出战场并向北退入山区。其强大的后卫部队打退了罗马军的追击。最后,哈司德鲁巴尔穿过西班牙北部,翻越比利牛斯山并到达高卢。
翌年(公元前207年),迦太基派汉诺率另一支军队去西班牙。他与马戈的军队会师。但是西庇阿派出一支强兵去攻打汉诺的营地。在随后的交战中,汉诺被生擒,然而马戈却成功地率领大部队向西班牙南部转移与驻在加的斯附近的哈司德鲁巴尔…吉斯戈会合。
伊利帕战役
西庇阿沿巴埃提斯河追击马戈。他在伊利帕附近扎营,那里离迦军不远。马戈的骑兵趁罗马军修建设防营地时向他们发起袭击,但是被西庇阿的骑兵击退。一连几天,两军都出营列队对阵,但是彼此都按兵不动,等待对方出击。
一天拂晓,西庇阿命令部下出动,其伊比利亚部队居中,罗马军队分列两翼。他用轻步兵与骑兵袭击哈司德鲁巴尔…吉斯戈的前哨,迫使迦太基军匆忙整队应战以阻止罗马军进攻营地。迦太基军作战队形为伊比利亚部队居两翼,非洲部队与战象居中央。
西庇阿发起进攻。他压住其中路军,命令两翼出击。他的这个作战方案似乎借用了汉尼拔坎尼战役的战斗部署。他的罗马军团冲向哈司德鲁巴尔的伊比利亚部队,迦军两翼被分割,终于彻底崩溃。哈司德鲁巴尔…吉斯戈与马戈试图以其非洲部队继续抵抗,但还是被击退并一直被逼至海边。那两位迦太基将领坐船逃走,但是他们的部下却大多数被杀或投降。
伊利帕战役之后,西班牙就不再存在迦太基野战军了,但是在许多城市中还留有忠诚的迦太基守军。他们一个接一个地,不是被罗马军攻破就是被叛卖给罗马。到公元前206年秋,西庇阿已征服了全部迦属西班牙。伊比利亚的丰富银矿已在向罗马提供财源,使它获得额外的资金将这场战争进行到底。
西庇阿计划入侵非洲
公元前205年,西庇阿回到罗马。为褒奖他的功勋,元老院选他为执政官。尽管许多老一辈议员不赞同他关于这场战争该如何进行的观点,但是广大罗马人民却非常爱戴他。当消息传开说他意欲将战火燃向非洲,在迦太基人的国土上与他们展开较量时,那些认为应首先消灭汉尼拔的人大为反对。法比乌斯·;马克西穆斯在元老院作了长篇发言,力主应先在意大利把汉尼拔打败;在此之前入侵非洲很可能会导致灾难。西庇阿成功地为自己进行了辩护,到分配军队时他获得了两个军团的指挥权。这两个军团曾在坎尼参战,败北后一直驻在西西里。他被授权渡海入侵非洲,只要他认为这样做对罗马有利。
为了扩大其部队