The A28 goes through the following five Dutch provinces: Utrecht, Gelderland, Overijssel, Drenthe and Groningen. The road connects the following cities: Utrecht, Amersfoort, Harderwijk, Zwolle, Hoogeveen, Assen, and Groningen.
The A28 motorway starts in the city of Utrecht, at an intersection with the Waterlinieweg, an important arterial road through the eastern part of the city. Major motorway junctions can be found at the interchanges Rijnsweerd near Utrecht (A27), Hoevelaken near Amersfoort (A1), Hattemerbroek near Zwolle (motorway A50 / highway N50), Lankhorst near Meppel (A32) and Hoogeveen near Hoogeveen (A37). The terminus is at the intersection Julianaplein near Groningen (motorway A7 / highway N7).
Although it seems illogical, the A28 is not the shortest connection between Utrecht and Groningen. The road alongside Lelystad and Heerenveen, following the A27, A6 and the A7, is some 10 km shorter.
Between the interchange Hoevelaken near Amersfoort and the terminus at Julianaplein in Groningen, the A28 is also a European route: the E232. This section of the A28 is the complete E232 route; the E232 does not consist of any other road or section.
| Province | Municipality | km. | # | Name | Roads | Notes |
|---|---|---|---|---|---|---|
| Utrecht | Utrecht | 0 | Centrum / Rijnsweerd | Terminus at junction in Utrecht. | ||
| 1 | Interchange Rijnsweerd | A27 | ||||
| 2 | 2 | De Uithof | ||||
| Zeist | 9 | 3 | Den Dolder | N238 | ||
| Soest | 11 | 4 | Soesterberg | |||
| Utrechtse Heuvelrug | 16 | 5 | Maarn | N221, N227 | ||
| Leusden | 17 | 6 | Leusden-Zuid | N226 | Zuid means south | |
| 19 | 7 | Leusden | ||||
| Amersfoort | 22 | 8 | Amersfoort | |||
| 27 | Interchange Hoevelaken | A1 | ||||
| ? | 8a | Vathorst | Under construction | |||
| Gelderland | Nijkerk | 36 | 9 | Nijkerk | N301 | |
| Putten | 41 | 10 | Strand Nulde | |||
| Ermelo | 46 | 11 | Strand Horst | |||
| Harderwijk | 51 | 12 | Harderwijk | N303 | ||
| 53 | 13 | Lelystad | N302 | |||
| Nunspeet | 63 | 14 | Nunspeet | N310 | ||
| 66 | 15 | Nunspeet-Oost | Oost means east | |||
| Elburg | 72 | 16 | 't Harde | N309 | ||
| Oldebroek | 82 | 17 | Wezep | N308 | ||
| 86 | Interchange Hattemerbroek | A50 / N50 | ||||
| Overijssel | Zwolle | 92 | 18 | Zwolle-Zuid | N331, N337 | |
| 94 | 19 | Zwolle-Centrum | Centrum means center | |||
| 96 | 20 | Zwolle-Noord | N35 | Noord means north | ||
| Ommen | 99 | 21 | Ommen | N340 | ||
| Dalfsen | 105 | 22 | Nieuwleusen | N377 | ||
| Staphorst | 112 | 23 | Staphorst | |||
| 114 | Interchange Lankhorst | A32 | Northbound exit and southbound entrance | |||
| Drenthe | De Wolden | 121 | 24 | De Wijk | ||
| 128 | 25 | Zuidwolde | Eastbound exit and westbound entrance | |||
| 132 | 25 | Zuidwolde | Westbound exit and eastbound entrance | |||
| Hoogeveen | 134/140 | Interchange Hoogeveen | A37, N48 | Gap in km | ||
| 142 | 26 | Hoogeveen | ||||
| 144 | 27 | Fluitenberg | ||||
| 148 | 28 | Pesse | N375 | |||
| Westerveld | 152 | 29 | Dwingeloo | |||
| Midden-Drenthe | 157 | 30 | Beilen | |||
| 160 | 31 | Westerbork | N381 | |||
| Assen | 171 | 32 | Assen-Zuid | N33 | ||
| 174 | 33 | Assen | N371 | |||
| 179 | 34 | Assen-Noord | ||||
| Tynaarlo | 186 | 35 | Vries | N386 | ||
| 189 | 36 | Zuidlaren | N34 | Southbound exit and northbound entrance | ||
| 190 | 37 | Eelde / Groningen Airport | ||||
| Groningen | Haren | 196 | 38 | Haren | ||
| Groningen | 199 | 39 | Groningen-Zuid | |||
| 200 | Intersection Julianaplein | A7 / N7 |