| 1 | BASSON Gustav | Team DMS Pro Cycling | 02:23:02.000 | - | 44.046 | 
| 2 | VAN DER MERWE Kimhan |  | 02:23:02.000 | - | 44.046 | 
| 3 | KLOPPER Christiaan | Martigues Sport Cyclisme Payden-Rygel | 02:23:02.000 | - | 44.046 | 
| 4 | KIECK Blaine |  | 02:23:02.000 | - | 44.046 | 
| 5 | MULLER Sheldon |  | 02:23:02.000 | - | 44.046 | 
| 6 | RADEMAN-LUDEKE Travis |  | 02:23:03.000 | 01.000 | 44.041 | 
| 7 | LUBBE Joshua |  | 02:23:03.000 | 01.000 | 44.041 | 
| 8 | FOUCHE Herman |  | 02:23:03.000 | 01.000 | 44.041 | 
| 9 | VAN NIEKERK Emile |  | 02:23:04.000 | 02.000 | 44.035 | 
| 10 | SCOTT Bradley |  | 02:23:04.000 | 02.000 | 44.035 | 
| 11 | HAVENGA Brendan |  | 02:23:04.000 | 02.000 | 44.035 | 
| 12 | MAHLANGU Thokozani |  | 02:23:05.000 | 03.000 | 44.03 | 
| 13 | MARAIS Jacques |  | 02:23:06.000 | 04.000 | 44.025 | 
| 14 | WIESNER Daniel |  | 02:23:07.000 | 05.000 | 44.02 | 
| 15 | GEYSER Reinhardt |  | 02:23:07.000 | 05.000 | 44.02 | 
| 16 | LANDSBERG Stian |  | 02:23:08.000 | 06.000 | 44.015 | 
| 17 | COUTAUD Marius |  | 02:23:08.000 | 06.000 | 44.015 | 
| 18 | RHEEDERS Josh |  | 02:23:08.000 | 06.000 | 44.015 | 
| 19 | JORDAAN Jason |  | 02:23:09.000 | 07.000 | 44.01 | 
| 20 | FOUCHE Damon |  | 02:23:09.000 | 07.000 | 44.01 | 
| 21 | GUMEDE Siyanda Mthobeleni |  | 02:23:09.000 | 07.000 | 44.01 | 
| 22 | DOWNES Brandon |  | 02:23:10.000 | 08.000 | 44.005 | 
| 23 | HEYNS Erick Delport |  | 02:23:10.000 | 08.000 | 44.005 | 
| 24 | MERTZ Zander |  | 02:23:10.000 | 08.000 | 44.005 | 
| 25 | KRUGER Casper | Team Honeycomb Pro Cycling | 02:23:11.000 | 09.000 | 44 | 
| 26 | MAIN Kent | Team DMS Pro Cycling | 02:23:12.000 | 10.000 | 43.994 | 
| 27 | JOOSTE Chris |  | 02:23:12.000 | 10.000 | 43.994 | 
| 28 | JANSE VAN RENSBURG Gert |  | 02:23:12.000 | 10.000 | 43.994 | 
| 29 | HAMMON Keenan |  | 02:23:13.000 | 11.000 | 43.989 | 
| 30 | STEDMAN Alastair |  | 02:23:14.000 | 12.000 | 43.984 |