Все то время, пока римляне выступали из лагеря и форсировали реку, пунийцы завтракали, грелись у костров и растирались оливковым маслом, кормили и готовили к бою лошадей и проверяли оружие. На поле боя карфагенянам предстояло выйти «бодрыми душой и телом», тогда как противостоящий им враг был измучен голодом, холодом и длительным преследованием. Получив сигнал о том, что римляне переправились через Требию, Ганнибал отдал приказ вывести войско в поле и построить его для боя (Polyb. III, 72, 1–5; Liv. XXI, 55, 1). Первыми выдвинулись легковооруженные балеарские пращники и метатели дротиков числом около 8 тыс. Их задачей было прикрыть отступавших нумидийцев и дать всадникам возможность отойти в тыл для того, чтобы перестроиться. За балеарами расположились основные силы пунийского войска. Центр его построения занимала тяжеловооруженная пехота из ливийцев, иберов и галлов, насчитывавшая около 20 тыс. воинов. На флангах Ганнибал разместил всадников, число которых суммарно составляло то ли 9 тыс. (согласно Титу Ливию), то ли более 10 тыс. (по данным Полибия). Перед отрядами кавалеристов на флангах были поставлены боевые слоны (Polyb. III, 72, 7—10; Liv. XXI, 55, 2). Описанным силам карфагенян Семпроний Лонг мог противопоставить завершивших невероятно тяжелую переправу воинов, общее число которых составляло примерно 40–42 тыс. Из них 4 тыс. были кавалеристами, преследовавшими нумидийцев и попавшими в особенно затруднительное положение, когда неприятель, применяя свою обычную тактику, перешел после притворного отступления в стремительную контратаку. Спасая свою конницу, консул приказал всадникам отступить и занять позиции на флангах. При этом, в отличие от пунийцев, римский военачальник распределил отряды кавалеристов не поровну между двумя флангами, а отправил на правое крыло построения тысячу римских конников, а на левое – 3 тыс. союзников. Центр же римского построения заняла пехота, насчитывавшая от 16 тыс. (согласно Полибию) до 18 тыс. (по Титу Ливию) римлян, 20 тыс. союзников и тех, кто имел право латинского гражданства, а также отряды из кельтского племени ценоманов. Последние были заклятыми врагами инсубров и, следовательно, не могли выступить на стороне карфагенян (Polyb. III, 72, 11–13; Liv. XXI, 55, 3–4).
Сражение начали отряды конницы на флангах и выставленные впереди обоих войск пехотинцы с дротиками и прочим метательным оружием. Более чем вдвое уступавшая врагу по численности и к тому же неравномерно распределенная по флангам римская кавалерия оказалась в особенно трудном положении. Уставшие лошади римлян и их союзников шарахались от шедших в атаку боевых слонов, и вскоре карфагеняне получили решающее преимущество на флангах, смяли и отбросили к реке вражескую конницу, обнажив фланги построения римской пехоты. Трудно пришлось и легковооруженным римским велитам, лишившимся во время преследования нумидийцев большей части дротиков. Оказавшись практически безоружными под обстрелом балеаров, они вынуждены были отступить за боевые порядки манипул принципов и триариев. Добившись этого, Ганнибал также отвел легковооруженную пехоту карфагенян, усилив ею фланги своего боевого построения. Вслед за этим последовала мощная атака пунийцев на центр и не прикрываемые более конницей фланги боевого построения римлян. В центре наступали слоны, а в тыл римлянам ударил карфагенский засадный отряд под командованием Магона.
Организовав круговую оборону, римляне дрались мужественно и упорно. Им даже удалось отбить наступление боевых слонов, которых велиты забросали дротиками и заставили повернуть назад, врезаясь в построение пунийской пехоты. Чтобы ликвидировать эту угрозу, Ганнибал приказал отвести слонов на левый фланг и направить их против ценоманов, которые в ужасе бежали от рассвирепевших в бою невиданных животных. Вырваться из окружения удалось лишь отряду из 10 тыс. римских легионеров во главе с Семпронием Лонгом. Не имея возможности отступить к лагерю, римские воины направились к Плаценции, а карфагеняне из-за непогоды не смогли организовать их преследование и сосредоточились на уничтожении остатков окруженных римских войск. Вслед за отрядом Семпрония в Плацению, а затем в Кремону отошли также отряды, остававшиеся в римском лагере под командованием Сципиона. Пунийцы не стали их преследовать то ли из-за непогоды, то ли из-за усталости после битвы. Потери пунийцев тоже были немалыми – римляне перебили чуть ли не всю легковооруженную пехоту, состоявшую из кельтов, нанесли существенный урон тяжеловооруженным пехотинцам. Конницу и боевых слонов подкосила непогода – десятки лошадей пали, а из боевых слонов осталось либо не более семи (по данным Тита Ливия (Liv. XXI, 58, 11)), либо всего один (согласно утверждению Полибия (Polyb. III, 74, 10)) (Polyb. III, 73, 6–8; Liv. XXI, 55, 5—11; 56, 1–9; App. VII, 6–7).