| 1 | LANGE Tyler |  | 02:35:43.000 | - | 39.302 | 
| 2 | JANSE VAN RENSBURG Reinardt | Team Tshenolo Pro Cycling | 02:35:43.000 | - | 39.302 | 
| 3 | KLOPPER Christiaan | Team Tshenolo Pro Cycling | 02:35:44.000 | 01.000 | 39.298 | 
| 4 | WEBER Sascha |  | 02:35:44.000 | 01.000 | 39.298 | 
| 5 | ENGELBRECHT Carlo | Team ASAP - WORLD | 02:35:44.000 | 01.000 | 39.298 | 
| 6 | MAIN Kent | Fly Cool Collective | 02:35:44.000 | 01.000 | 39.298 | 
| 7 | AZIZ Mohab Youssef | SuezCanalDiscovery | 02:35:45.000 | 02.000 | 39.294 | 
| 8 | ERASMUS Alexander Francois | Crabbé-Dstny U19 | 02:35:45.000 | 02.000 | 39.294 | 
| 9 | DOWNES Brandon | Melon Mobile RealPay Pro Cycling | 02:35:45.000 | 02.000 | 39.294 | 
| 10 | CLAASSEN Adian |  | 02:35:46.000 | 03.000 | 39.29 | 
| 11 | BEULKER Justus |  | 02:36:01.000 | 18.000 | 39.227 | 
| 12 | HOFMEYR Reitz | Bellville Cycling Club | 02:36:01.000 | 18.000 | 39.227 | 
| 12 | HOFMEYR Reitz | Team On Track | 02:36:01.000 | 18.000 | 39.227 | 
| 13 | KHATIEB Faraz |  | 02:36:01.000 | 18.000 | 39.227 | 
| 14 | KLEINSMIT Jose |  | 02:36:01.000 | 18.000 | 39.227 | 
| 15 | VENTER Jaco |  | 02:36:02.000 | 19.000 | 39.222 | 
| 16 | DU PLOOY Rohan | Fly Cool Collective | 02:36:16.000 | 33.000 | 39.164 | 
| 17 | JOHANNES Willem |  | 02:36:25.000 | 42.000 | 39.126 | 
| 18 | SHELLY David |  | 02:36:43.000 | 1:00.000 | 39.051 | 
| 19 | NOAH Alexis |  | 02:36:44.000 | 1:01.000 | 39.047 | 
| 20 | NICHOLSON Rohnan | Gepla-Watersley R+D Road Cycling Team | 02:36:44.000 | 1:01.000 | 39.047 | 
| 21 | BOSCH Andrew |  | 02:36:44.000 | 1:01.000 | 39.047 | 
| 22 | RAKAOTA Khotsofalang |  | 02:36:45.000 | 1:02.000 | 39.043 | 
| 23 | HATIM Kagaba |  | 02:36:45.000 | 1:02.000 | 39.043 | 
| 24 | TEKLEMARIAM Keven | As.Be.Co Cycling Club | 02:36:45.000 | 1:02.000 | 39.043 | 
| 24 | TEKLEMARIAM Keven | UCI WCC Men's Team | 02:36:45.000 | 1:02.000 | 39.043 | 
| 25 | BRITTAIN Matthew |  | 02:37:15.000 | 1:32.000 | 38.919 | 
| 26 | HAY Jared | Fly Cool Collective | 02:37:16.000 | 1:33.000 | 38.915 | 
| 27 | JOOSTE Chris |  | 02:37:16.000 | 1:33.000 | 38.915 | 
| 28 | HOFMEYR Wynand | Team ASAP - WORLD | 02:37:17.000 | 1:34.000 | 38.911 | 
| 29 | RACOUPEAU Jean-Baptiste |  | 02:37:21.000 | 1:38.000 | 38.894 | 
| 30 | LIEBENBERG Luke Owen |  | 02:37:21.000 | 1:38.000 | 38.894 | 
| 31 | MAHLANGU Thokozani |  | 02:37:21.000 | 1:38.000 | 38.894 | 
| 32 | PURBROOK Barnabas |  | 02:37:22.000 | 1:39.000 | 38.89 | 
| 33 | CRONJE Danie |  | 02:37:23.000 | 1:40.000 | 38.886 | 
| 34 | WILLIAMS KING Daniel | Team ASAP - WORLD | 02:37:36.000 | 1:53.000 | 38.832 | 
| 35 | MAKATILE Kabelo |  | 02:37:42.000 | 1:59.000 | 38.808 | 
| 36 | RAVLA Prateek |  | 02:38:05.000 | 2:22.000 | 38.714 | 
| 37 | ASCOTT George | Tsvaira Cycling Club | 02:38:05.000 | 2:22.000 | 38.714 | 
| 38 | BAMBA Drissa |  | 02:38:05.000 | 2:22.000 | 38.714 | 
| 39 | SHELLY Gavin |  | 02:38:05.000 | 2:22.000 | 38.714 | 
| 40 | SWART James Andrew |  | 02:38:31.000 | 2:48.000 | 38.608 | 
| 41 | STERMIN Luca |  | 02:38:36.000 | 2:53.000 | 38.588 | 
| 42 | GABRIEL Jahdel |  | 02:38:36.000 | 2:53.000 | 38.588 | 
| 43 | MCLOUGHLIN Connor |  | 02:39:07.000 | 3:24.000 | 38.462 | 
| 44 | SCHULTZ Imtiyaaz |  | 02:39:08.000 | 3:25.000 | 38.458 | 
| 45 | STEENKAMP Alwyn | Melon Mobile RealPay Pro Cycling | 02:40:12.000 | 4:29.000 | 38.202 | 
| 46 | VERLINDE Bert |  | 02:40:35.000 | 4:52.000 | 38.111 | 
| 47 | SALZWEDEL Zane | Team On Track | 02:40:47.000 | 5:04.000 | 38.064 | 
| 48 | ROODT Keanan | Fly Cool Collective | 02:41:01.000 | 5:18.000 | 38.008 | 
| 49 | SAIZONOU J. Glorad |  | 02:41:01.000 | 5:18.000 | 38.008 | 
| 50 | GUMEDE Siyanda Mthobeleni |  | 02:41:47.000 | 6:04.000 | 37.828 | 
| 51 | MARCIA Stefano | Team ASAP - WORLD | 02:41:48.000 | 6:05.000 | 37.824 | 
| 52 | WEITZ Lloyd |  | 02:41:49.000 | 6:06.000 | 37.821 | 
| 53 | SYMM Matthew | WAC Team Hoboken | 02:42:14.000 | 6:31.000 | 37.723 | 
| 54 | DA SILVA Tiano | Melon Mobile RealPay Pro Cycling | 02:42:14.000 | 6:31.000 | 37.723 | 
| 55 | MOOLMAN Warren | Madar Pro Cycling Team | 02:42:14.000 | 6:31.000 | 37.723 | 
| 56 | DUPUY Samuel |  | 02:42:15.000 | 6:32.000 | 37.72 | 
| 57 | KULSEN Ethan | Rhadsport Team EGK | 02:42:15.000 | 6:32.000 | 37.72 | 
| 58 | STRYDOM Willem Jacobus |  | 02:46:33.000 | 00:10:50.000 | 36.746 | 
| 59 | OOSTHUIZEN Thys |  | 02:49:02.000 | 00:13:19.000 | 36.206 | 
| 60 | MICHAEL Lobo |  | 02:49:10.000 | 00:13:27.000 | 36.177 | 
| 61 | KEALOTSWE Gomolemo |  | 02:49:10.000 | 00:13:27.000 | 36.177 | 
| 62 | METSING Omolemo |  | 02:49:10.000 | 00:13:27.000 | 36.177 | 
| 63 | DIALLO Tiémoko |  | 02:49:11.000 | 00:13:28.000 | 36.174 | 
| 64 | MASEMOLA Rodney | Team Tshenolo Pro Cycling | 02:49:13.000 | 00:13:30.000 | 36.167 | 
| 65 | MOTTALINI Maurizio |  | 02:49:20.000 | 00:13:37.000 | 36.142 | 
| 66 | VAN HEMERT Dan |  | 02:49:21.000 | 00:13:38.000 | 36.138 | 
| 67 | BOSHOFF Vickus |  | 02:49:21.000 | 00:13:38.000 | 36.138 | 
| 70 | DA CRUZ Kelson |  | 02:49:23.000 | 00:13:40.000 | 36.131 | 
| 71 | HOARAU Christophe |  | 02:50:03.000 | 00:14:20.000 | 35.989 | 
| 72 | AVENANT Pieter |  | 02:50:35.000 | 00:14:52.000 | 35.877 | 
| 73 | COETZEE Kris |  | 02:51:06.000 | 00:15:23.000 | 35.769 | 
| 74 | VENTER Derek |  | 02:51:07.000 | 00:15:24.000 | 35.765 | 
| 77 | VAN STADEN Jacques |  | 02:52:40.000 | 00:16:57.000 | 35.444 | 
| 78 | NEUMANN Horst | Hollard Insurance | 02:52:41.000 | 00:16:58.000 | 35.441 | 
| 80 | SKOSANA Sibusiso |  | 02:53:05.000 | 00:17:22.000 | 35.359 | 
| 84 | SMIT Jonathan |  | 02:55:48.000 | 00:20:05.000 | 34.812 | 
| 87 | GRONDIN Eddy Ferdinand |  | 02:58:58.000 | 00:23:15.000 | 34.196 | 
| 92 | TYAPA Ongeziwe |  | 03:00:31.000 | 00:24:48.000 | 33.903 |