De lette infanteriene braket først sammen, men velites presterte dårlig og ble trukket tilbake. Etter at velites trakk seg ut, ble gapet de etterlot fylt opp av og (tungt infanteri eller legionærer) som engasjerte seg i kampen med sine motstandere. Ettersom det tunge infanteriet forble låst i en alvorlig nærkamp, angrep det karthagenske kavaleriet og elefantene det romerske kavaleriet som de var tallmessig overlegent. Gradvis ble de romerske flankene presset lenger og lenger bak. Dette etterlot infanteriet i en stadig mer utsatt posisjon. Imens hadde Hannibal sendt alle sine elefanter fremover for å angripe de galliske allierte på romernes ytre venstre flanke. Gallerne hadde aldri sett slike skapninger før og ble raskt demoraliserte og trakk seg tilbake. Etter at det romerske kavaleriet ble drevet av slagmarken, angrep det karthagenske kavaleriet brutalt romernes ubeskyttede sider og hindret dem fra å kunne ta seg av fiendtlige fotsoldater som stod ovenfor dem. Samtidig angrep Magos skjulte styrker fra bakholdet og falt de hardt pressede romerske infanteristene i ryggen. Mens deres kampmoral allerede var tynnslitt av kulde, sult og strabaser, brøt de romerske rekkene sammen under denne nye nedslaktingen og kollapset til slutt under intenst press.