곧 플라미니우스의 로마군이 한니발을 추격해왔지만 역시나 만반의 준비를 하고 있던 한니발에게 패배하게 된다. 플라미니우스는 처음에는 게미누스의 지원군을 기다리면서 한니발과의 결전을 미루려는 전략을 펼쳤다.
하지만 한니발이 지속적으로 약탈과 초토화 작전을 반복하며 저지르자 초조함을 억누르지 못하고 섣불리 공격을 감행하면서 자멸의 길을 걷게 된다. 결국 그는 트라시메노 호수의 전투에서 한니발의 매복에 걸려들어 참패하고 만다.
무려 1만 5천이나 되는 병력이 한니발의 부대에게 전멸당하는 수모를 당한 것이다. 곧바로 플라미니우스를 지원하기 위해 로마군 기병 4천여기가 급파되어 증원되었지만 이들도 오기가 무섭게 한니발의 무대에 모두 전멸당하고 만다. 이 두 번의 깨끗한(?) 전멸은 로마군에 있어, 후일 칸나이 전투에까지 영향을 끼친 뼈아픈 손실이자 전체적인 패착을 의미했다. 기세가 오른 한니발은 이제 기다리지 않고 바로 남부 이탈리아를 향해 진격했다.
플라미니우스의 패배 소식을 들은 로마 정부는 당했고, 1차 포에니 전쟁의 영웅, 파비우스를 독재관에 임명하여 파견하게 된다. 적의 강함을 이미 간파할 정도의 수준은 되었던 파비우스는 한니발과의 결전을 피하며 소극적인 지구전으로 일관하며 장기전에 돌입한다. 이는 하루빨리 한니발군을 일소하기를 바랐던 로마 원로원과 민중을 아주 크게 실망시켰다.
기병장 미누키우스는 ‘이 도망자 독재관 때문에 우리 로마군이 전장의 유랑자가 되었다.’며 아예 대놓고 파비우스를 비난했고, 상관을 디스하는 겁 없는 당당함으로 병사들의 신임을 얻게 된다. 이에 파비우스의 친구들이 찾아와 충고했으나 신중했던 파비우스는 이렇게 말하며 자신의 지구 전략을 바꿀 생각이 없음을 명확히 한다.
“조국을 위하여 쓰는 작전으로 인한 수치는 수치가 아니며, 독재관인 내 어깨에 조국의 미래가 걸려있는 한, 어떤 성급한 작전으로도 한니발을 기쁘게 만들 생각이 없다.”
그 와중에 결정적인 작전 실패로 인해 파비우스의 신임에 큰 흠집이 생기는 사건이 발생한다. 파비우스가 한니발의 군대를 성공적으로 포위하는 전투가 있었다. 이는 한니발이 외지인의 안내를 잘못 알아듣고 카실리니움 계곡으로 들어간 기회를 파비우스가 놓치지 않고 얻어낸 성과였다.
파비우스는 결사대를 직접 지휘해 카르타고군 1천여 명을 사살하고, 한니발의 군대를 계곡의 코너까지 더욱 몰아붙였다. 카르타고군은 로마군에 의해 완전히 포위된 형세였다. 그러자 한니발은 밤에 황소 2천 마리를 끌어와서 뿔에 짚을 매단 채 불을 붙여 로마군 진영으로 몰았다. 이 기상천외한 작전으로 로마군의 포위망은 와해되었고 한니발군은 기적적으로 그 위기에서 탈출하게 된다.
이 작전에서 다 잡았던 한니발을 놓쳤다는 소문이 로마에 전해지면서, 파비우스는 로마 정부와 시민들의 신임을 잃었다. 그는 독재관 임기조차도 연장받지 못하는 수모를 겪게 된다. 그러한 정황에 대해 한니발이 모를 리 없었다. 한니발의 계책으로 파비우스의 신임은 더욱 추락했다. 한니발은 로마 근방을 공격하면서도 파비우스의 농장만을 일부러 건드리지 않는 고도의 전략을 펼친다.
이는 파비우스에 대한 의혹을 불러일으킴과 동시에 로마의 내부를 이간질하여 분열시키려고 한 전략이었다. 한니발의 계책은 성공해서 파비우스는 전쟁보다 자신의 영지를 보호하는데 힘을 기울인다는 모함으로 받게 된다. 그래서 원로원은 다음 해에 선출될 집정관들에게 한니발과의 싸움을 넘기는 것으로 잠정 결정을 내리고 파비우스를 끌어내리기로 했다.
그들이 그렇게 안에서 물고 뜯고 무너지는 동안 한니발은 중부 이탈리아를 가로질러 남부 이탈리아에 도착했다. 그는 이탈리아의 대표적인 곡창지대인 칸나이까지 점령하게 된다.
한니발이 칸나이 평야를 점령하자 로마군과 카르타고군의 전면전은 이제 피할 수 없는 상황이 되고야 말았다. 한니발이 칸나이를 차지한 이듬해, 가이우스 테렌티우스 바로와 루키우스 아이밀리우스 파울루스가 새로운 집정관으로 선출되었다. 당시 바로는 당장 전면전을 치르자는 과격파였고, 파울루스는 방어를 위주로 한 지구전을 펼쳐야 한다는 신중파였다.
원로원은 8개 로마 군단병과 8개 라틴 군단병, 6천4백의 기병으로 이루어진, 무려 9만 대군을 두 집정관에 맡겨 한니발을 뭉개버릴 것을 명한다. 두 집정관은 로마대군단을 이끌고 즉시 칸나이로 진격한다.
그러나 이미 다양한 전투로 날이 바짝 서 있던 한니발의 부대는 칸나이 전투에서 로마군을 압도적으로 격파해버리고 만다. 이는 한니발의 군인으로서의 생애 중에서도 가장 빛나는 영예이자 전 유럽에 로마 군단이라는 이름으로 맹위를 떨치던 로마에게 있어는 역사적인 대패(大敗)였다.
한니발은 이 전투의 승리로 단숨에 지중해 전역에 최고의 명장으로 자신의 이름을 떨치게 된다. 반면, 로마의 상황은 처참했다. 로마군은 9만 명 중 절반도 더 되는 5만에 이르는 병사가 전사했고, 그나마 살아남은 3만여 명은 포로로 잡혔다. 이렇게 증발한 병력은 당시 로마의 가용 병력 중에 1/5에 달했다. 무사히 도망간 로마군은 불과 1만 명도 되지 못했다. 두 집정관 중 바로는 도주해버렸고 그 과정에서 파울루스는 전사했다.
대 로마 군단이 이 어처구니없는 참패를 기록하게 되자, 그간 흔들리지 않던 로마의 동맹관계에 균열음이 들리기 시작했다. 일단, 가장 가까이에서 그 역사적인 전투의 명성을 확인한 칸나이 남쪽의 로마 동맹 도시들이 가장 빠른 속도로 로마 동맹에서 이탈했다. 심지어는 캄파니아 지역 도시들 몇몇까지도 이탈을 결정했다. 이 도시들은 로마가 위치한 라티움 지역의 바로 턱밑 지역이자 삼니움 전쟁 때도 함께 해온 오랜 동맹 도시들이었다.
로마에게 있어 가장 아픈 손가락은 바로, 카푸아였다. 카푸아가 한니발 편으로 돌아선 것은 그야말로 뼈아픈 결과가 아닐 수 없었다. 카푸아는 캄파니아 지방의 맹주이자 이탈리아에서 로마 다음으로 인구가 많고 번영한 도시였기 때문이었다. 그러자 이때 전임 집정관이었던 파비우스가 나서 자신의 그간 망가져버린 명예를 회복하게 된다. 그는 로마 시민들과 원로회를 격려하기 위해 성문에 파수꾼을 세워 사람들이 도망치는 것을 막았다. 이 일을 계기로 파비우스에 대한 로마에서의 악평은 완전히 사라졌다.
이렇게 빨리 로마의 동맹에 균열이 나버린 이유는 로마가 원래부터 동맹 도시들로부터 그다지 결속을 다질만한 긍정적인 평가를 받고 있지 못했던 때문이었다. 로마의 동맹 도시들은 로마의 강한 군사력과 외교력 때문에 어쩔 수 없이 로마에 복종하는 척 시늉만 하고 있었을 뿐이었다. 그나마 도시의 지배층들은 로마와의 화친을 추구했지만, 수많은 시민들은 로마가 그간 보여왔던 행태 때문이라도 그들을 달갑지 않게 여겼다.
당시 기록들을 찾아보면, 이탈리아 도시들에서는 대개 시민들은 한니발을 지지하고 지배층은 로마와의 동맹을 유지하려는 과정에서 괴리가 발생했다고 전한다. 그 가장 큰 이유는, 로마가 전쟁이 일어날 때마다 매번 동맹 도시의 시민들을 보조군으로 대규모 징발해갔기 때문이다.
지면 말할 것도 없고 전쟁에 승리하게 되더라도 전리품을 로마 시민과 동맹 도시의 지배층에게만 배분되었고, 동맹 도시의 시민들에게 아무런 보상조차 없었다. 이러한 이유로 동맹 도시의 시민들이 로마를 지지하거나 그들과 관계를 우호적으로 유지할 이유는 어디에서도 찾아볼 수 없었던 것이다.
“신은 한 사람에게 모든 것을 주지는 않는 모양입니다. 아무래도 한니발 장군께서는 승리하는 법은 알지만 그 승리를 어떻게 사용해야 할지는 모르는 것 같습니다.”
위의 말은 당시 카르타고의 기병대를 맡고 있던 기병 사령관 마하르발의 직언이었다. 그의 뼈아픈 지적처럼 한니발은 칸나이 전투에서의 대승리로도 로마를 완전히 붕괴시키지는 못했던 것이다. 분명 카푸아와 더불어 적지 않은 도시들이 로마로부터 이탈하며 전세가 기울고 한니발의 승세를 돕는 듯 하기는 했다.
그러나 기존의 적지 않은 도시들은 로마의 동맹 도시로 잔류하는 것을 택했다. 가장 결정적인 이유는 각 도시의 지배층이 로마에 호의적이었기 때문이었다. 전술한 바와 같이, 로마는 전쟁할 때마다 병력만 지원, 제공해주면 동맹 도시의 내정에는 결코 간섭하지 않았다.
그래서 보조군으로 차출되는 시민들만 불만이 있었을 뿐, 도시를 좌우지하는 지배층들은 로마와의 관계를 유지하는 것이 자신들의 부와 명예를 지키는 것에 더 유리하다고 판단했던 것이었다.
한니발 입장에서는 그런 상황에서 무턱대고 수도였던 로마시를 직접 공격하는 것 역시 어려웠다. 일부 역사가들의 터무니없는 흠집잡기식 주장과는 달리 한니발은 공성전에도 조예가 깊은 멀티 플레이어였다. 그러나 대도시인 로마를 상대로 공성전을 감행하기 위해서는 엄청난 병력과 물자가 뒷받침되어야만 했다. 즉, 공성전을 본격적으로 벌이기 위해서 한니발의 군대로는 이를 감당하기가 벅찼던 것이다.
특히 당시 한니발의 부대는 워낙 본진에서 멀리 떨어져 나왔던 지옥 같은 장거리 원정과 기동전을 펼치느라 전체 규모가 제한적일 수밖에 없었기 때문이었다. 뿐만 아니라 아직 그들이 지나왔던 이탈리아 반도가 완전히 정리되지 않은 상황이라서 언제든지 후방에서 위협할 수 있는 위험요소가 많았다. 그래서 무리하게 공성전을 벌였다가 다른 동맹 도시에서 온 로마의 지원군이 후방을 급습할 수 있다는 가능성이 한니발의 발목을 잡았다.
그러나 무엇보다 한니발을 곤혹스럽게 만들었던 것은 칸나이 전투의 대패 이후 로마군이 전술을 완전히 바꾸어 응전하기 시작했다는 점이었다. 로마인들은 이전 독재관이었던 파비우스의 지구전법이 그저 비겁한 시간 끌기가 아닌 효과적인 작전이었음을 대패하고나서야 깨달았다.
로마군은 한니발과의 추가적인 전면전을 철저히 회피하면서 산발적인 게릴라전만 벌이며 한니발 부대의 전력이 떨어지기를 기다렸다. 그렇게 로마군은 한니발의 보급을 방해하고 그의 병력을 조금씩 갉아먹는 굉장히 효율적인 전략으로 돌입했다.
거기에 더해, 로마군은 한니발의 본대와는 싸우지 않으면서 한니발이 이미 지나온 지역들을 공격하는 방식으로 한니발의 연결 거점도 하나씩 제거하며 목을 조여왔다. 이러한 이유로 어마어마한 대승을 거두고서도 한니발은 추가적인 결정타를 가할 수 없었고, 로마 측도 전면전을 통한 침략군의 박멸은 꿈도 꾸지 못한 채 지구전을 통한 수세에 일관하다 보니 전황은 그야말로 지리한 교착상태에 빠지게 된다.
결국, 전쟁은 소모전의 양상으로 완전히 돌아섰고, 한니발은 파비우스의 지구전에 효과적인 타개책을 내놓지 못했다. 하지만 전쟁사학자들의 분석에 의하면, 이는 한니발 개인의 역량이 부족했기 때문이라기보다는 카르타고 본국의 지원이 미비했던 탓이었다. 사실 카르타고가 한니발에게 일부러 지원을 해주지 않았던 것은 아니었다.
한니발은 칸나이 전투 이후 동생 마고를 본국에 직접 보내 지원을 요청했고, 카르타고 정부도 이에 바로 응하겠다는 결정을 내렸다. 특히 카르타고는 마고에게 보병 1만 5천 명에 기병 1200명, 전투 코끼리 20마리로 구성된 지원군을 내주었다. 이 병력은 전투함 60척의 호위를 받으며 이탈리아에 상륙할 예정(?)이었다.
그런데 정작 그 많은 든든한 지원군과 물자가 한니발에게는 도달하지 못하는 참사라 벌어졌다. 운명의 장난이었던 것인지, 비슷한 시기에 갑자기 이곳저곳에서 카르타고에 지원을 요청하는 연락이 쇄도했던 때문이었다. 사르데냐 섬에서는 로마를 상대로 반란을 일으킨 원주민이 카르타고 본국에 원조를 요청했다.
반면, 히스파니아에서는 카르타고의 남부 영토에서 대대적인 원주민 반란이 일어났다. 이는 하스드루발 바르카의 함대가 에브로 강 전투에서 그나이우스 스키피오에게 대패했기 때문에 일어난 반란이었다. 그래서 카르타고 정부는 일단 보병 1만 5천 명과 기병 1500명을 포함한 새로운 군대를 일으켜 사르데냐로 파견해 주게 된다. 하스드루발에게도 보병 4천 명과 기병 5백 명을 보내주었다. 물론 각 군대에는 임무를 마치면 이탈리아로 바로 지원을 가라는 명령도 함께 내려졌다.
그렇게 증원된 카르타고군은 우선 사르데냐를 노렸다. 당시 사르데냐는 로마군의 중요한 식량 보급지였기 때문에 한니발을 간접적으로 도와주는 전략이기도 했다. 한니발로 인해 로마군 역시 이탈리아 본토에서 식량 수급을 할 수 없었기 때문이었다. 그러한 이유로, 카르타고가 이곳을 점령하게 되면 로마 본국을 더더욱 궁지로 몰아넣을 수 있는 기회였다.
물론, 로마군도 이러한 위기를 모르지 않았기에 사르데냐에 대한 방비를 철저히 하며 전투에 만전을 기했다. 특히 제해권(制海權)을 장악한 로마군은 인근 해역을 철통같이 감시해서 다른 어떤 배도 상륙하지 못하도록 경계했다. 그래도 운이 따라준 덕분이었는지 카르타고군은 무사히 사르데냐에 상륙까지는 성공했다.
그러나 어렵게 상륙한 카르타고군은 고작 2만 5천여 병력뿐이어서 로마군에 숫적 우위를 점할 수 있는 정도가 되지 못했다. 게다가 로마군의 지휘관들과 병력들이 상대적으로 카르타고군의 수준을 상회하였다. 그렇게 로마군은 코르누스 전투에서 사르데냐에 상륙한 카르타고군을 손쉽게 격파해버리며 방어에 성공한다.
히스파니아에 보낸 카르타고군의 병력 역시 로마군에 격파당하고 만다. 하스드루발이 지휘관으로서 나름 분전했으나 데르토사의 전투에서 로마군에 패배하는 치욕을 맞게 된다. 이 패배로 이탈리아로 향할 예정이던 마고 바르카의 원군은 스페인으로 항로를 바꾸어야만 했다.
당연히 한니발에 대한 지원은 한없이 늦어졌다. 그나마 코르누스 전투 이후 카르타고 본국의 함대 일부가 이탈리아 로크리에 도착하는 것으로 한니발은 누미디아 기병 4천 명과 전투 코끼리 40마리를 확보하는 것에 만족해야만 했다.
하지만, 운명은 여전히 한니발의 편이 아니었다. 로마군에 연패하고 고전하던 카르타고는 누미디아 시팍스의 반란이라는 내분에 직면했다. 이를 진압하기 위해서 히스파니아에서 스키피오 형제를 상대하던 하스드루발 바르카가 아프리카로 급하게 소환된다. 카르타고 본국이 정작 존망의 위험에 처한 상태에서 그 먼 곳에 떨어져 있던 한니발에게 보급을 해줄 여유가 그들에게는 찾아볼 수 없었다. 그나마 히스파니아 전선은 마고 바르카와 하스드루발 기스코의 대규모 원군이 도착하여 안정되면서 누미디아의 반란을 진압할 수는 있었다.
히스파니아에서 스키피오 형제들은 계속해서 세력을 확장해갔다. 그러자 하스드루발 바르카는 엄청난 돈을 뿌려 스키피오 형제와 동맹을 맺고 있던 현지 부족들을 매수하는 작전을 편다. 결국 그는 그 전략을 통해, 현지 부족들의 배신으로 약화된 로마군을 베티스 고지의 전투에서 격파하는 데 성공한다. 심지어 두 스키피오 형제도 그 전투에서 죽이는 데 성공한다.
그러나 이듬해 곧바로 스키피오 형제 중 동생의 아들이자 형의 조카인 푸블리우스 코르넬리우스 스키피오가 침입해 카르타고 노바를 점령한다. 스키피오라는 이름이 너무 많이 나와 헷갈릴 수 있는데 이제 막 등장한 이 젊은 스키피오가 바로 후대에 한니발의 라이벌로 등장하는 바로 그 명성의 스키피오 장군이다.
갑작스럽게 등장한 이 젊은 명장의 데뷔에 그와 맞섰던 하스드루발 바르카, 마고 바르카, 하스드루발 기스코까지 줄줄이 패배를 맛보게 된다. 히스파니아 주둔군을 돕기 위해 카르타고 본국은 마지막 이탈리아 원정 병력까지 모두 짜내어 히스파니아에 파견하는 결정을 하게 된다.
결과적으로 보면, 카르타고 본국에서는 한니발을 지원하려고 하지 않은 것은 아니었지만, 여러 가지 내외부의 원인으로 인해 도저히 그럴 여력이 없었다. 정작 로마를 코앞에 두고 몰아쳤던 한니발을 제외한 모든 카르타고 군들이 각지의 로마군에게 연이어 패배하며 전력을 낭비했기 때문이었다.
본국의 입장에서는 당장 밀리고 있는 구멍 난 전장에 가용 병력을 동원해 줄 수밖에 없었다. 그렇게 여기저기 구멍 난 것을 메우겠다고 남아 있던 가용 군사력을 모두 탕진해버린 카르타고의 본국은 한니발에 대한 지원을 기약 없이 연기하게 될 수밖에 없었다. 음모론자에 준하는 몇몇 역사학자들이 한니발의 공적을 시기한 정적들이 고의로 지원을 하지 않았다는 시각도 있으나 이는 앞서 지적한 바와 같이 터무니없는 낭설이고 전혀 사실이 아니다.
사료에 따르면, 당시 카르타고의 의회에서 대다수의 의원들이 한니발이 거둔 승리들에 고무되어 어떻게든 그에게 지원을 보내려 애를 쓰고 전쟁을 확대하고자 했다. 소수의 소장파 의원들만이 로마와 협상하자는 의견을 제시했을 뿐이다. 그럼에도 불구하고 현실적인 상황을 보면, 앞서 쭉 살펴본 것처럼 그 지원이 한니발에게 하나도 도달하지 못하는 운명의 장난을 감내해야만 했다.
물론 로마 역시 사실상의 총력전을 벌이고 있었다. 로마는 해마다 20개 군단씩 편성하여 각지에서 전쟁을 수행하였다. 그런데 로마는 한니발을 상대로는 전투를 피하면서도 많은 병력을 보전하고 카르타고 식민지를 공략하는 우회전략을 취했다. 결과적으로 보면, 한니발이 지원을 받지 못하게 되었던 근본적인 원인은 카르타고군의 전반적인 전투력이 로마군에 비해 열세했다는 것이다.
이것은 반대로 이야기하면 대 국가적인 전력은 로마가 월등했으나 탁월한 지휘력과 군사능력을 발휘한 한니발을 카르타고가 담기에는 너무 작았다는 말과 크게 다르지 않다. 실제로 데이터상으로 분석해보더라도, 한니발을 제외한 당시 카르타고군은 병력의 규모, 병사들의 숙련도, 지휘관의 능력까지 그 어떤 면에서도 로마 군단을 압도할만한 수준이 되지 못했던 것이 사실이었다.
그럼에도 불구하고 전면전은 시작되었고 각지의 전투지에서 밀리지 않기 위해 남아 있던 가용 전력을 모두 그 밑 빠진 구멍들에 들이부었어야만 했고, 이 총체적 난국은 한니발이 받아야만 할 자원들까지도 잠식해버리고 만 것이다. 이것은 병법의 입장에서 보면 패착의 지름길이었다. 본진의 뛰어난 모사가 있었다면 결코 취하지 말았어야 할 전략이었던 것이다. 전체적인 전력을 비교해보더라도 상대에 비해 물량이 부족하다면 한니발에게 집중에서 본진인 로마를 점령해버리면 끝나는 일이었다.
하지만 카르타고 본국은 그만한 배짱도 머리도 없었다. 체스에서 아무리 뛰어난 체스 말이 있다고 하더라도 혼자서 일당백을 할 수 없는 것과 결국 킹을 잡으면 끝난다는 것조차 카르타고의 본진에서는 꿰뚫어 볼 인재가 없었던 것이다.
그뿐만 아니었다. 한니발을 제외하고는 로마 군단의 지휘관들과 비교할 때 현격히 지휘력이 뒤떨어졌다. 전쟁사에서 보면, 소규모 전투를 이기기는 했지만, 여기저기에서 연이어 로마군에 연패하며 병력과 물자를 소모하며 수준의 바닥을 드러낸 것이다.
한니발 혼자서 독불장군으로 전투에 이긴다고 끝낼 수 있는 싸움이 아니었기에 전방위로 퍼진 전황은 결코 뒤집을 수 없었다. 칸나이 전투 이후에도 한니발은 이탈리아 중부를 초토화하고 6개 군단을 연이어 전멸시키는 대활약을 거듭했다.
B.C. 212년 실라루스 전투에서는 매복으로 3개 군단에 해당되는 1만 5천여 병력을 전멸시키고 그 뒤 헤르도니아에서 3개 군단을 더 괴멸시켰다.
그야말로 무패의 행진이었다. 그러나 한니발이 이탈리아 남부의 타렌툼 근처로 내려가자 로마는 그 틈을 노려 한니발이 휩쓸고 간 지역들을 차례로 수복하는 얍삽하지만 효율적인 전략으로 한니발의 뒤를 끊어버렸다. 더욱이 두 명의 집정관들이 5만에 달하는 6개 로마 군단병과 6개의 동맹 도시 군단을 동원해 북부의 맹주였던 도시 카푸아를 포위하기에 이르렀다.