Zebrawszy nowe wojska Primus zajął pozycje wzdłuż drogi, oczekując nadchodzącego przeciwnika. Do starcia doszło w nocy, a obie strony walczyły zaciekle, zadając sobie ogromne straty. W starciu padł m.in. Arriusz Warus, który do końca walczył o uratowanie orła legionowego. Zacięta bitwa trwała kilka godzin. Rankiem siły Witeliusza zaczęły słabnąć, ulegając ostatecznie przeciwnikowi.
Po rozbiciu legionów Witeliusza, Primus ruszył na Cremonę, chronioną przez pomocnicze oddziały germańskich sprzymierzeńców Witeliusza. Tutaj doszło do szturmu na fortyfikacje germańskie. W wyniku zaciętej walki, żołnierze Wespazjana wdarli się za wały rozbijając przeciwnika. Miasto poddało się, jednak zwycięzcy nie uszanowali kapitulacji dokonując masakry mieszkańców.
Dzięki zwycięstwu pod Cremoną, na stronę Wespazjana przeszły liczne oddziały wojskowe. W tej sytuacji Witeliusz zgodził się na kapitulację i oddanie władzy. Z porażką nie pogodzili się jednak pretorianie, którzy zajęli Kapitol zabijając m.in. Flawiusza Sabinusa. Wkrótce też doszło do walk w Rzymie pomiędzy wojskami Primusa a pretorianami.