Andrea Dovizioso won the Italian Grand Prix for the third MotoGP victory of his career.
Championship leader and pole sitter Maverick Vinales finished second and Danilo Petrucci came third after starting ninth.
Seven-time world champion Valentino Rossi finished fourth.
Italians Mattia Pasini and Andrea Migno won the Moto2 and Moto3 races, respectively, as home riders swept all three divisions.