V prosinci 218 př. n. l. dorazil Sempronius se svým vojskem ke Scipionově táboru. Protože Scipio se stále léčil ze svého zranění a nemohl se účastnit boje, převzal velení Sempronius. Podle Polybia hořel touhou svést bitvu ještě předtím, než do svých úřadů nastoupí nově zvolení konzulové. Scipio mu jeho záměr rozmlouval a doporučoval střetnutí oddalovat. Přestože panovalo chladné počasí a sněžilo, Sempronius v odpověď na nájezd numidských jezdců vyvedl celé vojsko do bitvy. Římané přešli rozvodněnou Trebii a zaútočili na Puny na protějším břehu. Jakmile se rozpoutal boj, Hannibal vyslal do týlu nepřátel oddíl jezdců a pěšáků ukrytý v nedalekých křovinách. Římští vojáci na křídlech se následně dali na útěk a byli zahnáni zpět k řece. Jen asi 10 000 římských pěšáků dokázalo prorazit střed nepřátelské linie a uniknout do Placentie. Zima a sněhová bouře zabránily Kartágincům pronásledovat poražené za řeku a zmocnit se jejich tábora. V průběhu nastalé noci se Scipionovi podařilo dostat zbytky vojska do Placentie. Odtud je přepravil do Cremony a tam přezimoval.