Arbolino was over a second behind leaders Jakub Kornfeil and Dalla Porta two laps before the race as the duo was able to pull away from the rest after a couple of crashes in the front group.
First, Kaito Toba and Celestino Vietti collided at Turn 5, also collecting Tatsuki Suzuki and Raul Fernandez, which was followed by Darryn Binder falling at the same turn a lap later.
Soon after taking the lead from Dalla Porta, Kornfeil was given a long-lap penalty for violating track limits, on paper handing the former an easy win.
But Arbolino was able to close in on the Leopard rider and launch a last-lap assault, which resulted in a successful overtake at Turn 15.
Dalla Porta tried to come back with a strong exit out of the last corner, but he missed out by 0.045s, finishing second for the fourth time this year.
Pruestl’s Kornfeil was able to rejoin third after his penalty to score his first podium of the year followed by Gabriel Rodrigo (Gresini).
Pole-sitter Niccolo Antonelli (SIC58) only led for two laps after the start and in the end settled for eighth followed by Dennis Foggia (Sky VR46) and Alonso Lopez (EG0,0).
Romano Fenati (Snipers) featured in the lead positions for most of the race, even leading for a couple of laps, but he ran through the grass out of the final turn, eventually taking 11th.
Championship leader Aron Canet (Max Racing Team) was only 12th and his championship lead is down to seven points over Dalla Porta.
Jaume Masia’s bike stopped while Albert Arenas, Andrea Migno and Tom Booth-Amos also suffered crashes.