Wil Hartog startte in Italië zoals gewoonlijk weer snel. Hij was als derde weg achter Virginio Ferrari en Armando Torraca. Barry Sheene klom vanaf het middenveld echter gestaag op en nam de leiding over, terwijl Pat Hennen Torraca passeerde. Hartog viel uit door een vastloper. Hennen viel en daardoor werd Torraca alsnog derde.
Alan North had al op poleposition gestaan in de 350 cc klasse in Oostenrijk en Duitsland, maar in Italië kon hij die plaats eindelijk verzilveren. Hij wist met zijn Wilddam-Yamaha een kleine voorsprong te pakken op Mario Lega en Kork Ballington, die met elkaar in gevecht waren om de tweede plaats. Twee ronden voor het einde was Ballington's tank leeg en daardoor schoof Takazumi Katayama met zijn driecilinder Yamaha door naar de derde plaats.
Na het ongeluk van Paolo Pileri in de GP van Oostenrijk kreeg Mario Lega diens Morbidelli. Daarmee voerde hij in Italië acht ronden lang het 250 cc-veld aan. Toen drong Franco Uncini zich vanaf de vijfde plaats naar voren om de leiding over te nemen. De Kawasaki's hadden weer goed getraind (drie machines op de tweede startrij) en Barry Ditchburn haalde er de derde plaats mee.
De 125 cc race in Imola was net als de eerdere races in dit seizoen saai. Pier Paolo Bianchi werd geen moment bedreigd maar ook achter hem lagen de rijders tamelijk ver uit elkaar. Eugenio Lazzarini werd tweede en op de derde plaats eindigde de onbekende Italiaan Maurizio Massimiani met een Morbidelli. Ángel Nieto had nog wel een tijdje op de tweede plaats gelegen, maar zijn oude Bultaco uit 1976 kwam gewoon vermogen tekort.
In de 50 cc race startte Eugenio Lazzarini slecht, waardoor de Bultaco-rijders Ángel Nieto en Ricardo Tormo de leiding namen. Lazzarini stelde echter al snel orde op zaken en Nieto moest zelfs Tormo voor laten gaan.