| 1 | PRITZEN Marc Oliver | Team Honeycomb Pro Cycling | 02:58:10.000 | - | 0 | 
| 2 | HATHERLY Alan | Cannondale Factory Racing | 02:58:10.000 | - | 0 | 
| 3 | MAIN Kent | RKC Collective | 02:58:10.000 | - | 0 | 
| 4 | ANDREASSEN Simon |  | 02:58:12.000 | 02.000 | 0 | 
| 5 | GEYSER Reinhardt |  | 02:58:15.000 | 05.000 | 0 | 
| 6 | WEBER Sascha |  | 02:58:18.000 | 08.000 | 0 | 
| 7 | VENTER Jaco | Faucon Flacq KFC Pepsi Cycling Club | 02:58:20.000 | 10.000 | 0 | 
| 8 | NORTJE Tristan | Team Honeycomb Pro Cycling | 02:58:24.000 | 14.000 | 0 | 
| 9 | VAN DER MERWE Nicholas | U19 Academy Région Sud powered by Giant | 02:58:33.000 | 23.000 | 0 | 
| 10 | ERASMUS Alexander Francois | Team On Track | 02:58:34.000 | 24.000 | 0 | 
| 11 | GORDGE Kieran | Sn Vitae HUUB p/b Bim Bam Coaching | 02:59:17.000 | 1:07.000 | 0 | 
| 12 | VAN DYK Jacob Charles | Team Honeycomb Pro Cycling | 02:59:27.000 | 1:17.000 | 0 | 
| 12 | VAN DYK Jacob Charles | Midas/Autorama | 02:59:27.000 | 1:17.000 | 0 | 
| 13 | RUWIEL Luca |  | 02:59:30.000 | 1:20.000 | 0 | 
| 14 | MOOLMAN Warren | TEG Procycling Team | 02:59:32.000 | 1:22.000 | 0 | 
| 15 | DE VILLIERS Johan |  | 02:59:40.000 | 1:30.000 | 0 | 
| 16 | MCFALL Charles |  | 02:59:42.000 | 1:32.000 | 0 | 
| 17 | SYMM Matthew | Team On Track | 02:59:54.000 | 1:44.000 | 0 | 
| 18 | CLAASSEN Adian |  | 02:59:56.000 | 1:46.000 | 0 | 
| 19 | HOFMEYR Reitz |  | 03:00:02.000 | 1:52.000 | 0 | 
| 20 | STEDMAN Travis | Q36.5 Continental Team | 03:00:21.000 | 2:11.000 | 0 | 
| 21 | ASSATI Yannick Georges |  | 03:00:26.000 | 2:16.000 | 0 | 
| 22 | LEROY Olivier |  | 03:00:26.000 | 2:16.000 | 0 | 
| 23 | SCHUTTE Ryno | TWC Tempo - Hoppenbrouwers-Viro | 03:00:27.000 | 2:17.000 | 0 | 
| 24 | KRUGER Casper | Team Honeycomb Pro Cycling | 03:00:31.000 | 2:21.000 | 0 | 
| 25 | KROS Eric |  | 03:00:40.000 | 2:30.000 | 0 | 
| 26 | VAN DER WATT Daniel |  | 03:01:43.000 | 3:33.000 | 0 | 
| 27 | OLCKERS Victor |  | 03:01:44.000 | 3:34.000 | 0 | 
| 28 | BURRELL Rhys | Team On Track | 03:02:15.000 | 4:05.000 | 0 | 
| 29 | MILLER Jason |  | 03:02:49.000 | 4:39.000 | 0 | 
| 30 | GOETHAM Alex |  | 03:02:56.000 | 4:46.000 | 0 | 
| 31 | SHELLY David | TEG Procycling Team | 03:03:10.000 | 5:00.000 | 0 | 
| 32 | WAGNER Josua |  | 03:03:12.000 | 5:02.000 | 0 | 
| 33 | STRYDOM Willem Jacobus |  | 03:03:39.000 | 5:29.000 | 0 | 
| 34 | KULSEN Ethan | BIKE AID Südliche Weinstrasse Development Team | 03:03:59.000 | 5:49.000 | 0 | 
| 35 | BRUINTJIES Jason |  | 03:04:01.000 | 5:51.000 | 0 | 
| 36 | JOOSTE Chris | RKC Collective | 03:04:28.000 | 6:18.000 | 0 | 
| 37 | BUTLER Reynard |  | 03:04:29.000 | 6:19.000 | 0 | 
| 38 | KAKANA Lundi |  | 03:05:00.000 | 6:50.000 | 0 | 
| 39 | BOYER Nicolas |  | 03:06:10.000 | 8:00.000 | 0 | 
| 40 | SALZWEDEL Zane | Team On Track | 03:06:23.000 | 8:13.000 | 0 | 
| 41 | PRIESTMAN Lloyd |  | 03:07:26.000 | 9:16.000 | 0 | 
| 42 | DU PLOOY Rohan | RKC Collective | 03:07:26.000 | 9:16.000 | 0 | 
| 43 | EGGETT Jason |  | 03:07:28.000 | 9:18.000 | 0 | 
| 44 | MAILLOT ROBERT Pierre |  | 03:08:08.000 | 9:58.000 | 0 | 
| 45 | COURTOIS Kévin |  | 03:08:09.000 | 9:59.000 | 0 | 
| 46 | LIEBENBERG Luke Owen |  | 03:08:48.000 | 00:10:38.000 | 0 | 
| 47 | LANGE Tyler |  | 03:09:11.000 | 00:11:01.000 | 0 | 
| 48 | KRUGER Hb |  | 03:09:13.000 | 00:11:03.000 | 0 | 
| 49 | BONTHUYS Carl |  | 03:09:14.000 | 00:11:04.000 | 0 | 
| 50 | MXENGE Thula |  | 03:10:09.000 | 00:11:59.000 | 0 |