汉尼拔的父亲哈米尔卡是第一次布匿战争(公元前264-241年)结束时迦太基军队的指挥官。迦太基战败后,哈米尔卡越境到伊斯帕尼亚去征服现在西班牙的部落。当时的迦太基状况很差。它的海军无法携带军队前往伊比利亚(伊斯帕尼亚)。哈米尔卡不得不向大力神柱进军,并穿过直布罗陀海峡。根据李维的一个故事,哈米尔卡让汉尼拔承诺,他永远不会成为罗马的朋友。汉尼拔告诉他的父亲
我发誓,只要年龄允许... 我将用火和钢逮捕罗马的命运。
作为回报,哈米尔卡同意带着汉尼拔一起去伊斯帕尼亚。他用了两年时间完成了对埃布罗河以南伊比利亚的征服。229/228年他战死,很可能是在朱卡尔河中溺水身亡。他的女婿哈斯德鲁巴尔接任指挥,但在公元前221年被暗杀。
于是,公元前221年,汉尼拔成为了军队的领袖。罗马担心汉尼拔的实力越来越强。他们与萨贡顿城结成联盟,并声称要保护该城。Saguntum在埃布罗河以南。汉尼拔因此攻打该城。八个月后攻陷了该城。罗马希望迦太基能伸张正义。迦太基政府认为汉尼拔的行为没有错。汉尼拔想发动的战争在年底宣告结束。
前往意大利的陆路旅行
汉尼拔的军队由多达75000名步兵和9000名骑兵组成。汉尼拔于公元前218年春末离开"新迦太基"。他一路向北打到比利牛斯山脉。他通过巧妙的山地战术和顽强的战斗,打败了各部落。在行军290英里,到达埃布罗河后,汉尼拔从他的利比亚和伊比利亚雇佣军中选择了最值得信赖和最忠诚的部分继续随他前进。他留下了1.1万名军队,负责监视新征服的地区。在比利牛斯山脉,他又放走了1.1万伊比利亚军队。汉尼拔带着五万步兵和九千骑兵进入高卢。
汉尼拔需要穿越比利牛斯山、阿尔卑斯山和许多重要的河流.从公元前218年春天开始,他一路打到了比利牛斯山。他与高卢领导人达成和平协议,到达罗纳河。9月到达罗纳河,汉尼拔的军队有3.8万步兵、8000名骑兵和37头战象。
汉尼拔从罗马派来高卢与他作战的部队中逃脱。然后,他沿着罗纳河的一条溪流的山谷而上。到了秋天,他到达了阿尔卑斯山脚下。他的翻山越岭之旅是任何一支军事力量中最著名的成就之一。经过这次旅行,汉尼拔从山麓下来进入意大利北部。他到达时只带了他开始时一半的部队和仅有的几头大象。汉尼拔翻山越岭,损失了多达两万人。
特雷比亚之战
普布利乌斯-科尼利厄斯-西庇奥指挥罗马军队派去阻止汉尼拔。他没有想到汉尼拔会越过阿尔卑斯山。他期望在西班牙与汉尼拔作战。斯基普奥带着一支小部队仍在高卢,试图阻止汉尼拔。他及时将军队从海上转移到意大利与汉尼拔会合。汉尼拔通过击败陶里尼(今都灵)部落,使后面的地区更加安全。对方军队在迦太基作战。在这里,汉尼拔迫使罗马人走出伦巴底平原。这次胜利大大削弱了罗马人对高卢人的控制。高卢人决定加入迦太基人。很快,整个意大利北部都非正式地结盟了。高卢人和利古里亚人的军队很快将他的军队增加到4万人。汉尼拔的军队已经准备好入侵意大利。西庇奥退过特雷比亚河。他在普拉森提亚镇扎营,等待更多的军队。
元老院命令森普罗尼乌斯-朗格斯从西西里带着他的军队去见西庇阿,面对汉尼拔。汉尼拔在位置上将他拦下。森普罗尼乌斯避开了汉尼拔,在普拉森提亚附近的特雷比亚河附近加入了西庇欧。在特雷比亚,汉尼拔从侧翼埋伏突袭,击败了罗马步兵。
特拉西梅内湖之战
公元前217年春,汉尼拔到达伊特鲁里亚,决定引诱弗拉米尼乌斯率领的罗马主力军参战。汉尼拔发现弗拉米尼乌斯在阿雷蒂姆扎营。他绕过对手的左侧行军,将弗拉米尼乌斯与罗马切断。汉尼拔让弗拉米尼乌斯追赶他。在特拉西门努斯湖畔,汉尼拔在水中或附近的山坡上消灭了弗拉米尼乌斯的军队。他把弗拉米尼乌斯也杀了。他摆脱了唯一能阻止他到达罗马的力量。他意识到,没有攻城引擎,他就不可能有希望攻下首都,所以他决定继续进入意大利中部和南部。他希望这种力量的展示能造成对罗马政府的反抗。特拉西米内湖后,汉尼拔说:"我不是来和意大利人打仗的,而是代表意大利人反对罗马。"
法比尤斯
罗马陷入了巨大的恐慌之中。他们任命了一位独裁者,名叫昆图斯-法比乌斯-马克西姆斯。他是一个聪明而谨慎的将军。
法比乌斯采取了"法比安战略"。他拒绝与敌人公开作战,并在汉尼拔附近布置了几支罗马军队以限制他的行动。法比乌斯派出小股部队对付汉尼拔的觅食队。北方小村庄的居民被告知要放哨。他们可以收集他们的牲畜和财产,然后去加固城镇。这样可以消磨侵略者的耐力。
汉尼拔决定通过萨姆尼恩向坎帕尼亚进军。他希望通过破坏来吸引法比乌斯参战,但法比乌斯拒绝被吸引参战。他的部队被他的"懦弱精神"激怒了。他的政策不受欢迎。罗马人习惯于在战场上面对敌人,人民希望看到战争迅速结束。
秋天剩下的时间里,小规模冲突频繁。六个月后,法比乌斯按照罗马法被撤职。
坎奈之战
公元前216年春,汉尼拔攻占了阿普利亚平原上的坎纳大补给站,有效地将自己置于罗马人与其补给源之间。216年,罗马元老院恢复了领事选举。他们选择凯乌斯-特伦提乌斯-瓦罗(Caius Terentius Varro)和卢修斯-艾米利乌斯-保卢斯(Lucius Aemilius Paullus)为执政官。罗马人为了打败汉尼拔,举起了他们历史上至此最大的军队。据估计,这支军队的总兵力约为8万人。
罗马军队向南行进到阿普利亚。经过两天的行军,他们在奥迪弗斯河边找到了汉尼拔。执政官瓦罗是一个充满骄傲的鲁莽之人,他决心打败汉尼拔。瓦罗的傲慢让汉尼拔把他引到了一个陷阱里。汉尼拔以高明的战术,包围并摧毁了这支部队的大部分。
据估计,有5万至7万罗马人在坎纳被杀或被俘。死者中有八十名元老院议员。罗马元老院的人数不超过300人--这占统治机构的25%-30%。坎纳战役是古罗马历史上最严重的失败之一。就单日死亡人数而言,它也是人类历史上最血腥的战役之一。坎纳之后,罗马人拒绝与汉尼拔打仗。他们反而试图通过磨损他的身体来打败他。他们依靠自己的补给和人力优势。
由于这次胜利,意大利南部大部分地区加入了汉尼拔的事业。同年,西西里岛上的希腊城市纷纷起义,反抗罗马的控制。马其顿国王腓力五世支持汉尼拔。第一次马其顿反罗马战争由此开始。汉尼拔在意大利第二大城市卡普亚建立了新的基地。
僵持
没有盟友的资源,也没有迦太基的援军,汉尼拔无法再做什么,开始节节败退。只要能把罗马人带入战场,他就继续击败罗马人,但始终无法再取得决定性的胜利。
意大利战争结束
公元前212年,塔伦图姆的阴谋家让汉尼拔进城。然后他们用一些罗马人的号角吹响了警报。这让汉尼拔的部队在罗马人跌跌撞撞地进入街道时,将他们挑落马下。汉尼拔让塔伦特人在塔伦特人居住的每一栋房子上做个记号,这样就不会被洗劫一空。即使遭到洗劫,城堡仍能坚持下来。这就阻止了汉尼拔使用港口,罗马对汉尼拔的控制力逐渐增强。同年,他失去了坎帕尼亚。
公元前211年,卡普亚城陷落。同年夏天,罗马人在西西里岛消灭了迦太基军队。同时,汉尼拔在阿普利亚的赫多尼亚击败了富维乌斯,但失去了塔伦图姆。公元前209年塔伦图姆失守,罗马人攻占萨米尼翁和卢卡尼亚,他对南意大利的控制几乎丧失。
公元前207年,他退居布鲁提乌姆。这些事件标志着汉尼拔在意大利的成功结束。公元前203年,汉尼拔被召回迦太基,领导保卫祖国抵御罗马人的入侵。