| 1 | HOFMEYR Wynand | Team ASAP - WORLD | 02:06:25.000 | - | 42.716 | 
| 2 | KLEINSMIT Jose |  | 02:06:26.000 | 01.000 | 42.71 | 
| 3 | KLOPPER Christiaan | Team Tshenolo Pro Cycling | 02:06:26.000 | 01.000 | 42.71 | 
| 4 | ERASMUS Alexander Francois | Crabbé-Dstny U19 | 02:06:27.000 | 02.000 | 42.705 | 
| 5 | WEBER Sascha |  | 02:06:30.000 | 05.000 | 42.688 | 
| 6 | JANSE VAN RENSBURG Reinardt | Team Tshenolo Pro Cycling | 02:07:40.000 | 1:15.000 | 42.298 | 
| 7 | LANGE Tyler |  | 02:07:41.000 | 1:16.000 | 42.292 | 
| 8 | AZIZ Mohab Youssef | SuezCanalDiscovery | 02:07:42.000 | 1:17.000 | 42.287 | 
| 9 | CLAASSEN Adian |  | 02:07:42.000 | 1:17.000 | 42.287 | 
| 10 | VENTER Jaco |  | 02:07:42.000 | 1:17.000 | 42.287 | 
| 11 | MAIN Kent | Fly Cool Collective | 02:07:42.000 | 1:17.000 | 42.287 | 
| 12 | HOFMEYR Reitz | Bellville Cycling Club | 02:07:42.000 | 1:17.000 | 42.287 | 
| 12 | HOFMEYR Reitz | Team On Track | 02:07:42.000 | 1:17.000 | 42.287 | 
| 13 | TEKLEMARIAM Keven | As.Be.Co Cycling Club | 02:07:43.000 | 1:18.000 | 42.281 | 
| 13 | TEKLEMARIAM Keven | UCI WCC Men's Team | 02:07:43.000 | 1:18.000 | 42.281 | 
| 14 | KHATIEB Faraz |  | 02:07:43.000 | 1:18.000 | 42.281 | 
| 15 | ENGELBRECHT Carlo | Team ASAP - WORLD | 02:07:43.000 | 1:18.000 | 42.281 | 
| 16 | BEULKER Justus |  | 02:07:43.000 | 1:18.000 | 42.281 | 
| 17 | GUMEDE Siyanda Mthobeleni |  | 02:07:43.000 | 1:18.000 | 42.281 | 
| 18 | JOHANNES Willem |  | 02:07:44.000 | 1:19.000 | 42.276 | 
| 19 | MAHLANGU Thokozani |  | 02:07:44.000 | 1:19.000 | 42.276 | 
| 20 | DOWNES Brandon | Melon Mobile RealPay Pro Cycling | 02:07:44.000 | 1:19.000 | 42.276 | 
| 21 | NICHOLSON Rohnan | Gepla-Watersley R+D Road Cycling Team | 02:07:45.000 | 1:20.000 | 42.27 | 
| 22 | RACOUPEAU Jean-Baptiste |  | 02:07:47.000 | 1:22.000 | 42.259 | 
| 23 | PURBROOK Barnabas |  | 02:07:47.000 | 1:22.000 | 42.259 | 
| 24 | MAKATILE Kabelo |  | 02:07:48.000 | 1:23.000 | 42.254 | 
| 25 | CRONJE Danie |  | 02:07:49.000 | 1:24.000 | 42.248 | 
| 26 | RAKAOTA Khotsofalang |  | 02:07:49.000 | 1:24.000 | 42.248 | 
| 27 | BRITTAIN Matthew |  | 02:07:50.000 | 1:25.000 | 42.243 | 
| 28 | NOAH Alexis |  | 02:07:51.000 | 1:26.000 | 42.237 | 
| 29 | MCLOUGHLIN Connor |  | 02:07:52.000 | 1:27.000 | 42.231 | 
| 30 | GABRIEL Jahdel |  | 02:07:52.000 | 1:27.000 | 42.231 | 
| 31 | SALZWEDEL Zane | Team On Track | 02:07:52.000 | 1:27.000 | 42.231 | 
| 32 | HATIM Kagaba |  | 02:07:52.000 | 1:27.000 | 42.231 | 
| 33 | STERMIN Luca |  | 02:07:53.000 | 1:28.000 | 42.226 | 
| 34 | JOOSTE Chris |  | 02:07:54.000 | 1:29.000 | 42.22 | 
| 35 | SHELLY David |  | 02:07:54.000 | 1:29.000 | 42.22 | 
| 36 | VERLINDE Bert |  | 02:07:54.000 | 1:29.000 | 42.22 | 
| 37 | MASEMOLA Rodney | Team Tshenolo Pro Cycling | 02:07:55.000 | 1:30.000 | 42.215 | 
| 38 | LIEBENBERG Luke Owen |  | 02:07:57.000 | 1:32.000 | 42.204 | 
| 39 | WILLIAMS KING Daniel | Team ASAP - WORLD | 02:08:01.000 | 1:36.000 | 42.182 | 
| 40 | SCHULTZ Imtiyaaz |  | 02:08:01.000 | 1:36.000 | 42.182 | 
| 41 | HAY Jared | Fly Cool Collective | 02:08:03.000 | 1:38.000 | 42.171 | 
| 42 | BOSCH Andrew |  | 02:08:03.000 | 1:38.000 | 42.171 | 
| 43 | DIALLO Tiémoko |  | 02:08:04.000 | 1:39.000 | 42.166 | 
| 44 | DU PLOOY Rohan | Fly Cool Collective | 02:08:05.000 | 1:40.000 | 42.16 | 
| 45 | TYAPA Ongeziwe |  | 02:08:05.000 | 1:40.000 | 42.16 | 
| 46 | MICHAEL Lobo |  | 02:08:06.000 | 1:41.000 | 42.155 | 
| 47 | METSING Omolemo |  | 02:08:13.000 | 1:48.000 | 42.116 | 
| 48 | DUPUY Samuel |  | 02:08:22.000 | 1:57.000 | 42.067 | 
| 49 | SAIZONOU J. Glorad |  | 02:08:23.000 | 1:58.000 | 42.062 | 
| 50 | MOOLMAN Warren | Madar Pro Cycling Team | 02:08:25.000 | 2:00.000 | 42.051 | 
| 51 | SHELLY Gavin |  | 02:08:25.000 | 2:00.000 | 42.051 | 
| 52 | ASCOTT George | Tsvaira Cycling Club | 02:08:45.000 | 2:20.000 | 41.942 | 
| 53 | MARCIA Stefano | Team ASAP - WORLD | 02:09:15.000 | 2:50.000 | 41.779 | 
| 54 | DA SILVA Tiano | Melon Mobile RealPay Pro Cycling | 02:09:31.000 | 3:06.000 | 41.693 | 
| 55 | STRYDOM Willem Jacobus |  | 02:09:52.000 | 3:27.000 | 41.581 | 
| 56 | BAMBA Drissa |  | 02:10:38.000 | 4:13.000 | 41.337 | 
| 57 | SYMM Matthew | WAC Team Hoboken | 02:11:17.000 | 4:52.000 | 41.132 | 
| 58 | SMIT Jonathan |  | 02:11:17.000 | 4:52.000 | 41.132 | 
| 59 | WEITZ Lloyd |  | 02:11:18.000 | 4:53.000 | 41.127 | 
| 60 | STEENKAMP Alwyn | Melon Mobile RealPay Pro Cycling | 02:11:46.000 | 5:21.000 | 40.982 | 
| 61 | SWART James Andrew |  | 02:13:51.000 | 7:26.000 | 40.344 | 
| 62 | ROODT Keanan | Fly Cool Collective | 02:20:29.000 | 00:14:04.000 | 38.439 | 
| 63 | MOTTALINI Maurizio |  | 02:21:23.000 | 00:14:58.000 | 38.194 | 
| 64 | OOSTHUIZEN Thys |  | 02:21:26.000 | 00:15:01.000 | 38.181 | 
| 65 | VENTER Derek |  | 02:21:27.000 | 00:15:02.000 | 38.176 | 
| 66 | SMYTH Ben |  | 02:21:28.000 | 00:15:03.000 | 38.172 | 
| 67 | BOSHOFF Vickus |  | 02:21:28.000 | 00:15:03.000 | 38.172 | 
| 68 | COETZEE Kris |  | 02:21:31.000 | 00:15:06.000 | 38.158 | 
| 69 | HOARAU Christophe |  | 02:21:32.000 | 00:15:07.000 | 38.154 | 
| 71 | DA CRUZ Kelson |  | 02:21:33.000 | 00:15:08.000 | 38.149 | 
| 73 | VAN STADEN Jacques |  | 02:22:53.000 | 00:16:28.000 | 37.793 | 
| 74 | VAN HEMERT Dan |  | 02:23:07.000 | 00:16:42.000 | 37.731 | 
| 75 | GRONDIN Eddy Ferdinand |  | 02:23:08.000 | 00:16:43.000 | 37.727 | 
| 76 | SKOSANA Sibusiso |  | 02:23:08.000 | 00:16:43.000 | 37.727 | 
| 78 | NEUMANN Horst | Hollard Insurance | 02:23:15.000 | 00:16:50.000 | 37.696 | 
| 91 | RAVLA Prateek |  | 02:33:07.000 | 00:26:42.000 | 35.267 | 
| 93 | KEALOTSWE Gomolemo |  | 02:33:15.000 | 00:26:50.000 | 35.237 | 
| 96 | AVENANT Pieter |  | 02:33:47.000 | 00:27:22.000 | 35.114 |