Tras recuperarse de las pérdidas de las anteriores batallas y, en concreto, de la batalla del Trebia (218 a. C.) y la batalla del Lago Trasimeno (217 a. C.), los romanos decidieron enfrentarse a Aníbal en Cannas con aproximadamente 87 000 soldados romanos y aliados.