In de 500cc-race bleef Rodney Gould zeven ronden aan de leiding rijden, maar uiteindelijk moest hij het hoofd buigen voor Giacomo Agostini. Bo Granath werd met zijn tweecilinder Husqvarna derde in zijn thuisrace.
In de 350cc-race moesten de MV Agusta-coureurs Giacomo Agostini en Phil Read in de eerste ronden een flink gevecht leveren tegen Jarno Saarinen (Yamaha), die zelfs de snelste ronde reed. Later moest Saarinen met versnellingsproblemen afhaken, maar hij bleef Read toch dicht op de hielen zitten. Uiteindelijk won Agostini vóór Read en Saarinen.
In Zweden won Rodney Gould de 250cc-race nadat hij meteen na de start een flinke voorsprong had opgebouwd. Jarno Saarinen kon hem niet volgen, maar reed de hele race ver voor Renzo Pasolini en Kent Andersson, die om de derde plaats vochten. Pasolini reed zich in de slotfase los van Andersson en werd derde.
Voor de race in Zweden stond Ángel Nieto er slecht voor in de 125cc-klasse. Alle wedstrijden waarin hij gefinisht was had hij gewonnen, maar dat waren er slechts vier. Hij stond dan ook slechts vierde in het kampioenschap en kon zich geen misstappen meer veroorloven. Kent Andersson (derde in het kampioenschap) nam de leiding, en Nieto wist hem pas in de eindfase te passeren. Op de finish had Nieto slechts 0,3 seconden voorsprong. Leider in het kampioenschap Chas Mortimer werd derde en Börje Jansson (tweede in het kampioenschap) werd vierde.
In de 50cc-race nam Ángel Nieto bij de start de leiding, maar binnen een ronde voegde Jan de Vries zich bij hem. Er ontstond een geweldig gevecht, dat volgens Jan de Vries voor een van hen verkeerd moest aflopen. Dat gebeurde met Ángel Nieto die in de elfde ronde in een linker bocht de controle verloor. Daardoor won de Vries, Theo Timmer werd tweede en Juan Parés March (Derbi) werd derde. Hierdoor had Jan de Vries nu 69 punten en Ángel Nieto had 66 punten. Beiden moesten de Grand Prix van Spanje winnen om wereldkampioen te worden.