The New Zealander upset world champion and first-seeded Nino Schurter, beating him into second in the seven-lap race. Maxime Marotte (France) completed the podium just a second later.
Schurter led the race after the first lap. The 28th-seeded Gaze was in second with his compatriot Anton Cooper in third.
Gaze overtook Schurter in the second lap with Cooper and Marotte having fought for third place.
Schurter went ahead later in the second lap, with Gaze falling just a second behind. Mathieu van der Poel (Netherlands) worked his way forward to move into third place.
Gaze again took the lead over Schurter heading into the third lap, before the two swopped positions again as the lap unfolded.
Marotte passed Van der Poel into third, as the two were playing their own game of cat and mouse.
South Africa’s Stuart Marais, who was seeded 48th, dropped down to 66th place in the third lap.
Schurter entered lap four in front, with Gaze still on his wheel. Marotte was riding in third, 11 seconds behind. Van der Poel was still breathing down his neck in fourth.
It was a sea-saw affair between Gaze and Schurter, as the New Zealander again headed to the front for the duration of the lap, before the Swiss took the lead as the lap ended.
Marotte, at that same point, surged ahead into second place, with the three having stayed together.
The Frenchman dropped six seconds behind, as Gaze moved into second on Schurter’s tail. Van der Poel was on his own in fourth.
Gaze got his nose in front of Schurter on the line at the end of the fifth lap, as their dual continued.
Marotte managed to build a sizeable lead in third over Van der Poel.
Marais went up three places to 65th on the second last lap.
Schurter remained in the lead at the start of the final lap. Gaze took the lead half way through the lap in the grass section of the race.
Gaze showed great perseverance to hold Schurter and after a string of attacks in the wider sections of the course, the New Zealander outsmarted the world champion to win in an exciting sprint to the finish.
In a field of 99 riders, Marais dropped and finished in 75th as the highest-placed South African. Six riders did not finish.
View more results below.
1. Sam Gaze (New Zealand) 1:30:14
2. Nino Schurter (Switzerland) 1:30:15
3. Maxime Marotte (France) 1:30:16
4. Mathieu van der Poel (Netherlands) 1:31:24
5. Titouan Carod (France) 1:31:41
6. Anton Cooper (New Zealand) 1:32:16
7. Florian Vogel (Switzerland) 1:32:28
8. Henrique Avancini (Brazil) 1:32:36
9. Mathias Flueckiger (Switzerland) 1:32:37
10. Andri Frischknecht (Switzerland) 1:32:46