En 218 a. C., el desconcertado y humillado Escipión halló un ejército enemigo de 26.000 hombres audazmente acampado en la Galia Cisalpina y se dirigió al Norte, lleno de furia.
Los ejércitos se encontraron por vez primera en el río Tesino, corriente que desemboca en el Po desde el Norte. Allí las caballerías enemigas sostuvieron una breve escaramuza y los romanos fueron derrotados. El mismo Escipión fue herido y, según la tradición, habría sido muerto si su hijo de diecinueve años (y tocayo suyo) no se hubiese lanzado a su rescate. Más adelante volveremos a hablar del hijo de Escipión.
Escipión y su ejército lograron retirarse del otro lado del Po y se replegaron al este del río Trebia, corriente que desemboca en el Po desde el Sur. Allí esperó la llegada del ejército del otro cónsul, Tiberio Sempronio Longo, mientras permanecía cautelosamente frente a Aníbal. El río los dividía, romanos al Este y los cartagineses al Oeste.
Aníbal quería presentar batalla; tenía un miedo terrible de que los romanos se retirasen y conservasen intacto su ejército; mientras que si combatían, confiaba en destruirlos. Por ello, cuando llegó el ejército de Sempronio, Aníbal no movió un dedo para impedir que unieran sus fuerzas. Unidos, tal vez se sintieran suficientemente fuertes como para combatir.
Escipión ya conocía lo suficiente a Aníbal y era favorable a la retirada, pese a los refuerzos recibidos. Pero Sempronio, que nunca se había enfrentado con Aníbal, estaba totalmente decidido a luchar y no quiso considerar ni por un momento ninguna cobarde sugerencia de retirarse.
La intención de Aníbal era hacer que los romanos cruzasen el río, si podía lograrlo. Para ello envió un destacamento de caballería al lado romano. Los romanos los atacaron y, después de una breve resistencia, los cartagineses huyeron. Los romanos los persiguieron de cerca, y su infantería, que pronto se olió la victoria, se lanzó al río detrás de ellos.
Era invierno y el agua estaba helada. Los romanos emergieron del otro lado, empapados y congelados, y cuando la caballería en huida se hizo a un lado, los romanos se encontraron con todo el ejército cartaginés que los estaba esperando preparado para el combate, y además fresco y seco.
Las legiones romanas lucharon bravamente y se abrieron paso por las líneas de Aníbal, pero la caballería cartaginesa, reforzada, dio media vuelta y, con la ayuda de los elefantes, se lanzó velozmente sobre la caballería romana y la derrotó. Luego, el hermano menor de Aníbal, Magón, a quien Aníbal había ocultado con dos mil hombres, cargó en el momento decisivo y atacó a los romanos por la retaguardia.
Combatiendo denodadamente, parte del ejército romano consiguió librarse, pero sólo a costa de las más grandes pérdidas. Los romanos conservaron guarniciones en dos ciudades fortificadas a orillas del Po, pero, por lo demás, tuvieron que abandonar toda la Galia Cisalpina, que habían conquistado sólo cuatro años antes. Los galos estaban encantados de este cambio de la fortuna y rápidamente se unieron a Aníbal. De este modo pudo compensar con creces las pérdidas que había sufrido al abrirse camino hacia Italia.
Escipión, que había sido incapaz de detener a Aníbal, fue enviado de vuelta a España para ver qué podía hacer en la retaguardia de Aníbal, mientras otros generales se preparaban para hacer frente al terrible cartaginés.
Si antes los romanos estaban encolerizados, ahora estaban fuera de sí. Aníbal avanzó hacia el Sur y tenía que ser detenido. Para detenerlo y destruirlo se envió un nuevo ejército bajo el mando de Flaminio, el conquistador de la Galia Cisalpina.
Flaminio no tuvo que ir lejos para encontrar a Aníbal. El cartaginés había avanzado por el norte de Etruria, con todo desprecio por el poderío romano, y luego, en la primavera de 217 a. C., marchó hacia el Este pasando por el lago Trasimeno. En el curso de esta marcha, Aníbal perdió la vista de un ojo, pero con el ojo que le quedaba podía ver mejor, como se demostró, que muchos generales romanos con los dos.
Flaminio lo persiguió furiosamente, pero, para desgracia de Roma, todavía era un general poco capaz. Estaba tan ansioso de enfrentarse y destruir al cartaginés que perdió toda cautela y no dedicó el tiempo necesario para enviar patrullas de reconocimiento. Quizá Aníbal sabía bastante de Flaminio como para contar con esto.
En el lago Trasimeno, Aníbal observó un estrecho camino que bordeaba el lago y estaba limitado del otro lado por las colinas. Colocó todo su ejército detrás de las colinas y esperó. El ejército romano apareció en la mañana serpenteando por el estrecho camino y una ligera bruma contribuía a mantenerlos en la ignorancia de que lo esperaba el enemigo. Cuando los romanos estuvieron totalmente extendidos en una prolongada y estrecha línea a lo largo de todo el camino, los cartagineses cayeron sobre ellos y sencillamente hicieron una matanza. Los romanos casi no tuvieron la posibilidad de defenderse y perdieron diez hombres por cada soldado de Aníbal. El ejército fue exterminado y Flaminio con él.
Para horror de los romanos, el segundo ejército enviado contra Aníbal, aunque mayor que el primero, sufrió una derrota aún mayor.
Los romanos ya no estaban furiosos; estaban aterrorizados. Desde el saqueo de Roma por los galos dos siglos antes, nunca se habían hallado en tal peligro. Aníbal parecía un mago, contra el cual no podía ningún enemigo.
Los romanos nombraron un dictador, Quinto Fabio Máximo, nieto y tocayo del general que había derrotado a los galos casi ochenta años antes.
Fabio no hizo ningún intento de marchar sobre Aníbal. Juzgaba que su tarea consistía en mantener intacto su ejército y esperar pacientemente una oportunidad.
Aníbal podía entonces haber marchado directamente sobre Roma, pero sabía que no debía hacerlo. Podía derrotar en el campo de batalla a generales romanos incautos, pero su ejército aún era pequeño y estaba lejos de su patria. Pensó que no podía sostener un asedio formal contra Roma; no sin ayuda. Esperaba obtener esta ayuda de los aliados italianos de Roma.
Fue esta esperanza la que le llevó primero al Éste y luego al Sur. Eludiendo Roma, avanzó por el territorio de las tribus, particularmente las del Samnio, a las que esperaba levantar contra Roma. Para estimularlas a ello, liberó sin rescate a todos los prisioneros italianos. Más tarde (esperaba), con toda Italia de su lado, y Roma sin amigos y sola, podría atacarla y aplastarla.
Pero a este respecto, la estrategia de Aníbal fracasó. La maquinaria militar romana podía fallar, pero el dominio había sido construido sobre bases políticas, más que la potencia bélica. Las ciudades italianas apreciaban la prosperidad y el gobierno eficiente que había creado la dominación romana. Tal vez suspiraran por la independencia, pero sabían que, si se alineaban con Aníbal, no obtendrían la independencia, sino que caerían bajo la dominación cartaginesa, y seguramente ésta sería mucho peor que la romana.
Además, Fabio, el dictador, adoptó justamente el curso de acción que menos favorecía a Aníbal. En vez de arriesgarse a una batalla campal, marchó y contramarchó siguiendo los flancos de Aníbal, aislando grupos de cartagineses, mordisqueando en un lado y pellizcando en otro. Pero siempre evitaba una lucha abierta, por mucho que Aníbal lo incitase a ella. A causa de esta política, Fabio se ganó el apodo de Cunctactor, o «el que dilata». (Hasta hoy, se habla de una «política fabiana» para significar una táctica de dilación y paciencia, evitando una vigorosa lucha directa).
Mediante esta táctica, Fabio desgastó lentamente al ejército de Aníbal, pero, a medida que pasaron los meses, los romanos se sintieron cada vez menos satisfechos con esta manera de actuar. Parecía innoble y por debajo de la dignidad romana. Cuando los romanos tuvieron tiempo de recuperarse de la conmoción que les produjeron las dos derrotas sucesivas, les pareció que Aníbal no era tan temible, a fin de cuentas. Todo lo que se necesitaba, pensaban muchos de ellos, era firmeza y un ataque resuelto. Les parecía que Fabio Cunctactor no era más que un cobarde, indigno del nombre de romano.
Uno de los más agresivos críticos de la política de Fabio, Cayo Terencio Varrón, fue elegido cónsul en 216 antes de Cristo (537 A. U. C.), y junto con él, un hombre más cauteloso, Lucio Emilio Paulo. Fabio fue llamado para que regresara y se confió a los dos cónsules la tarea de buscar a Aníbal y combatir con él. Lo encontraron en Cannas, cerca del mar Adriático y a cerca de 320 kilómetros al sudeste de Roma. (Aníbal había atravesado toda Italia en el año y medio transcurrido desde que cruzó los Alpes).
Los cónsules se dividieron el mando, dirigiendo el ejército en días alternos. Cuando le tocó el turno a Varrón, no pudo esperar para combatir. Tenía un ejército mayor que el de Sempronio y el de Flaminio, y superaba a Aníbal casi en dos a uno: 86.000 contra 50.000. Consideraba imposible que los romanos perdiesen una batalla en la que tenían tal superioridad.
Aníbal, pese a su desventaja en el número de soldados, parecía dispuesto a complacer a Varrón, y le ofreció la batalla que éste quería. La infantería cartaginesa avanzó en semicírculo y, cuando los romanos atacaron, retrocedió lentamente. La línea cartaginesa se hizo recta a medida que se replegaba y luego empezó a combarse hacia atrás.
Pero, mientras tanto, los extremos de las líneas cartaginesas no se movieron. Los romanos que avanzaban no parecían preocuparse de los extremos de la línea. El centro cartaginés parecía derrumbarse; un empujón más y la línea cartaginesa se rompería y la batalla habría terminado.
En su impaciencia por atacar, los romanos penetraron en el interior de un despliegue cartaginés en forma de U. Fueron forzados a cerrar filas de tal modo que apenas tenían espacio para blandir sus espadas, por lo que su misma superioridad numérica redundó en su desventaja. A una señal de Aníbal, los extremos de la línea cartaginesa se cerraron, y la caballería cartaginesa, que había quitado de en medio a la caballería romana, cayó sobre la retaguardia de los romanos.
El ejército romano estaba como en un saco, y Aníbal sencillamente ató el lazo y dejó que los soldados romanos muriesen. Murieron por decenas de miles, y el cónsul Paulo con ellos. Muy pocos escaparon. (Varrón fue uno de los que escapó, pero se suicidó antes que volver a Roma y enfrentarse con sus conciudadanos). Fue la mayor derrota que sufrió Roma en la época de su grandeza.
Los romanos habían enviado un tercer ejército, más poderoso que los dos primeros, y habían sufrido una tercera derrota, peor que las dos anteriores. En verdad, Cannas siempre ha sido considerada la clásica «batalla de aniquilamiento», y quizá nunca se dio un ejemplo similar de un ejército débil que barre completamente a otro más poderoso solamente por el genio de su general.
Sin duda, ha habido otros generales que han derrotado enormes ejércitos con fuerzas pequeñas. Alejandro Magno derrotó enormes ejércitos persas y Robert Clive derrotó enormes ejércitos indios, cada uno de ellos con fuerzas relativamente pequeñas. Pero esos enormes ejércitos estaban mal dirigidos y mal organizados, mientras que los pequeños ejércitos de Alejandro y Clive estaban mejor armados y mejor conducidos. Pero Aníbal luchaba contra el mejor ejército del mundo, pues los romanos fueron invencibles durante siglos antes de Aníbal y fueron invencibles durante siglos después de él. Por eso, hay muchos que consideran a Aníbal como el más grande general que haya existido.