Met de fabrieks- Heron-Suzuki vertrok Wil Hartog vanaf de derde startrij als snelste in zijn thuiswedstrijd. Hij hield het twee ronden vol, maar miste de bocht bij de Bedeldijk en hij werd gepasseerd door Barry Sheene, Kenny Roberts en Takazumi Katayama. Johnny Cecotto wist bij deze kopgroep aansluiting te vinden. Hoewel de koppositie enkele malen wisselde moesten een paar man uiteindelijk afhaken: Katayama door overlopende vlotterkamers en Sheene met bandenproblemen. Teamgenoten Cecotto en Roberts reden zo naar de finish en Cecotto won met 0,1 seconde voorsprong. Barry Sheene wist nog derde te worden, Wil Hartog werd vijfde.
In Assen begon het tijdens de opwarmronde van de 350cc-klasse te regenen en de meeste rijders gingen naar de pit om regenbanden te halen. Niet allemaal echter, en dat zou bepalend zijn voor het wedstrijdverloop. Mick Grant had licht opgesneden slicks en werd slechts zevende, Takazumi Katayama stopte in de elfde ronde en Gregg Hansford werd met zijn slicks slechts achtste. Jon Ekerold reed even aan de leiding, maar werd gepasseerd door Kork Ballington en Gianfranco Bonera, die eerste en tweede werden.
Net als in de 350cc-klasse was de bandenkeuze van de 250cc-klasse in Assen moeilijk, omdat het weliswaar droog was, maar de baan nog nat. Zo kozen sommigen voor volledige regenbanden, anderen voor intermediates en Kenny Roberts voor een opgesneden slick. Toen Roberts' machine eindelijk aansloeg was het hele veld (behalve Patrick Fernandez) al door de eerste S-bocht verdwenen. Roberts reed echter een geweldige race. Binnen twee ronden meldde hij zich bij de kopgroep en aan het einde van de tweede ronde remde hij Gregg Hansford bij de Geert Timmer-bocht uit om de tweede plaats te grijpen. Ook de leidende Kork Ballington moest eraan geloven en werd uiteindelijk tweede, voor Hansford.
Op de opdrogende baan in Assen vertrok Pier Paolo Bianchi als snelste en hij werd nog even gevolgd door Harald Bartol. Die viel even terug naar de zesde plaats maar verbeterde zich in de race toch weer (hij werd derde). Bianchi viel echter uit en daardoor schoof Eugenio Lazzarini door naar de eerste plaats. Achter hem vochten Maurizio Massimiani en Thierry Espié om de tweede plaats, tot Thierry Espié uitviel. Bartol won de strijd om de derde plaats van Patrick Plisson.
Assen kende in 1978 bijna uitsluitend saaie races en de 50cc-klasse was daar het eerste voorbeeld van. Hoewel Patrick Plisson een goede start had, wist Eugenio Lazzarini uiteindelijk een voorsprong van 24 seconden op te bouwen ten opzichte van Ricardo Tormo, die Plisson ook nog voor bleef.
De meeste spanning van de zijspanklasse in Assen was in de weken vóór de race, toen een aantal rijders dreigden de TT te boycotten als Rolf Biland met zijn "BEO" aan de start zou komen. De race zelf werd nogal saai, vooral nadat Biland met ontstekingsproblemen was uitgevallen. De posities wisselden toen nog alleen door uitvallers: Rolf Steinhausen door een gebroken voorwielophanging en Alain Michel door een gebroken ketting. Werner Schwärzel reed eenzaam op kop en Jean-François Monnin/Paul Gérard namen de tweede plaats van Dick Greasley/Gordon Russell over toen die motorproblemen kregen.