Відновивши чисельність армії після попередніх втрат при Требії (218 до н. е.) і при Тразименському озері (217 до н. е.), римляни вирішили протистояти Ганнібалу в Каннах, приблизно з 87 000 римських і союзних військ. На флангах, правий із яких спирався на річку Ауфід, римляни помістили свою кінноту і зосередили важку піхоту в глибшому, ніж зазвичай, шикуванні, в центрі свого бойового порядку. Можливо, римляни сподівалися зламати карфагенський стрій на початку битви, як сталося в битві при Требії. Щоб протистояти цьому, Ганнібал використовував тактику подвійного охвату. Він поставив свою найменш надійну піхоту в центрі, а на флангах поставив свою сильну нумідійську і гальську кінноту. Перед початком битви його бойове шикування нагадувало вигнутий вперед серп. Після початку битви центр війська Ганнібала прогнувся під ударом чисельно переважаючих військ римлян. Тоді як центральна частина військ Ганнібала відступала, римляни несвідомо втягнули себе у великий мішок — після чого африканські ветерани-піхотинці, що їх Ганнібал поставив на флангах, і кіннота, що на початку бою розбила і прогнала з поля римську кінноту, оточили головні сили римської піхоти. Оточена римська армія піддалася нападу зі всіх сторін і залишилась без засобів порятунку, та згодом була розгромлена по частинах. Приблизно 60 000-70 000 римлян було убито або захоплено в Каннах (включаючи консула Луція Емілія Павла і вісімдесят римських сенаторів). Вважається, що по числу життів, втрачених в один день,Канни потрапляють в число тридцяти найкривавіших битв у всій людській історії.