| 1 | LANGE Tyler |  | 03:05:49.000 | - | 41.654 | 
| 2 | JANSE VAN RENSBURG Reinardt | Team Tshenolo Pro Cycling | 03:05:50.000 | 01.000 | 41.65 | 
| 3 | AZIZ Mohab Youssef | SuezCanalDiscovery | 03:05:50.000 | 01.000 | 41.65 | 
| 4 | TEKLEMARIAM Keven | As.Be.Co Cycling Club | 03:05:50.000 | 01.000 | 41.65 | 
| 4 | TEKLEMARIAM Keven | UCI WCC Men's Team | 03:05:50.000 | 01.000 | 41.65 | 
| 5 | KLOPPER Christiaan | Team Tshenolo Pro Cycling | 03:05:51.000 | 02.000 | 41.646 | 
| 6 | MAIN Kent | Fly Cool Collective | 03:05:51.000 | 02.000 | 41.646 | 
| 7 | ERASMUS Alexander Francois | Crabbé-Dstny U19 | 03:05:52.000 | 03.000 | 41.643 | 
| 8 | KHATIEB Faraz |  | 03:05:55.000 | 06.000 | 41.632 | 
| 9 | DOWNES Brandon | Melon Mobile RealPay Pro Cycling | 03:05:55.000 | 06.000 | 41.632 | 
| 10 | JOHANNES Willem |  | 03:05:56.000 | 07.000 | 41.628 | 
| 11 | ENGELBRECHT Carlo | Team ASAP - WORLD | 03:05:56.000 | 07.000 | 41.628 | 
| 12 | HOFMEYR Reitz | Bellville Cycling Club | 03:05:56.000 | 07.000 | 41.628 | 
| 12 | HOFMEYR Reitz | Team On Track | 03:05:56.000 | 07.000 | 41.628 | 
| 13 | CLAASSEN Adian |  | 03:05:57.000 | 08.000 | 41.624 | 
| 14 | WEBER Sascha |  | 03:05:57.000 | 08.000 | 41.624 | 
| 15 | KLEINSMIT Jose |  | 03:06:03.000 | 14.000 | 41.602 | 
| 16 | NICHOLSON Rohnan | Gepla-Watersley R+D Road Cycling Team | 03:06:10.000 | 21.000 | 41.576 | 
| 17 | MAKATILE Kabelo |  | 03:06:11.000 | 22.000 | 41.572 | 
| 18 | RAKAOTA Khotsofalang |  | 03:06:11.000 | 22.000 | 41.572 | 
| 19 | NOAH Alexis |  | 03:06:11.000 | 22.000 | 41.572 | 
| 20 | PURBROOK Barnabas |  | 03:06:12.000 | 23.000 | 41.568 | 
| 21 | MAHLANGU Thokozani |  | 03:06:13.000 | 24.000 | 41.564 | 
| 22 | BAMBA Drissa |  | 03:06:14.000 | 25.000 | 41.561 | 
| 23 | BOSCH Andrew |  | 03:06:14.000 | 25.000 | 41.561 | 
| 24 | SHELLY David |  | 03:06:16.000 | 27.000 | 41.553 | 
| 25 | MCLOUGHLIN Connor |  | 03:06:16.000 | 27.000 | 41.553 | 
| 26 | MOOLMAN Warren | Madar Pro Cycling Team | 03:06:18.000 | 29.000 | 41.546 | 
| 27 | MICHAEL Lobo |  | 03:06:20.000 | 31.000 | 41.538 | 
| 28 | BRITTAIN Matthew |  | 03:06:23.000 | 34.000 | 41.527 | 
| 29 | STERMIN Luca |  | 03:06:23.000 | 34.000 | 41.527 | 
| 30 | VERLINDE Bert |  | 03:06:23.000 | 34.000 | 41.527 | 
| 31 | GABRIEL Jahdel |  | 03:06:24.000 | 35.000 | 41.524 | 
| 32 | RACOUPEAU Jean-Baptiste |  | 03:06:27.000 | 38.000 | 41.512 | 
| 33 | KEALOTSWE Gomolemo |  | 03:06:28.000 | 39.000 | 41.509 | 
| 34 | BEULKER Justus |  | 03:06:28.000 | 39.000 | 41.509 | 
| 35 | SYMM Matthew | WAC Team Hoboken | 03:06:37.000 | 48.000 | 41.475 | 
| 36 | GUMEDE Siyanda Mthobeleni |  | 03:06:38.000 | 49.000 | 41.472 | 
| 37 | DIALLO Tiémoko |  | 03:06:42.000 | 53.000 | 41.457 | 
| 38 | SHELLY Gavin |  | 03:06:43.000 | 54.000 | 41.453 | 
| 39 | TYAPA Ongeziwe |  | 03:06:55.000 | 1:06.000 | 41.409 | 
| 40 | METSING Omolemo |  | 03:07:03.000 | 1:14.000 | 41.379 | 
| 41 | DU PLOOY Rohan | Fly Cool Collective | 03:07:03.000 | 1:14.000 | 41.379 | 
| 42 | ROODT Keanan | Fly Cool Collective | 03:07:07.000 | 1:18.000 | 41.365 | 
| 43 | DUPUY Samuel |  | 03:07:07.000 | 1:18.000 | 41.365 | 
| 44 | ASCOTT George | Tsvaira Cycling Club | 03:07:21.000 | 1:32.000 | 41.313 | 
| 45 | VENTER Jaco |  | 03:07:28.000 | 1:39.000 | 41.287 | 
| 46 | STEENKAMP Alwyn | Melon Mobile RealPay Pro Cycling | 03:07:31.000 | 1:42.000 | 41.276 | 
| 47 | DA SILVA Tiano | Melon Mobile RealPay Pro Cycling | 03:07:32.000 | 1:43.000 | 41.273 | 
| 48 | JOOSTE Chris |  | 03:07:54.000 | 2:05.000 | 41.192 | 
| 49 | STRYDOM Willem Jacobus |  | 03:09:10.000 | 3:21.000 | 40.916 | 
| 50 | CRONJE Danie |  | 03:09:12.000 | 3:23.000 | 40.909 | 
| 51 | HAY Jared | Fly Cool Collective | 03:13:04.000 | 7:15.000 | 40.09 | 
| 52 | SALZWEDEL Zane | Team On Track | 03:16:12.000 | 00:10:23.000 | 39.45 | 
| 53 | SWART James Andrew |  | 03:16:12.000 | 00:10:23.000 | 39.45 | 
| 54 | RAVLA Prateek |  | 03:17:29.000 | 00:11:40.000 | 39.193 | 
| 55 | WEITZ Lloyd |  | 03:20:56.000 | 00:15:07.000 | 38.52 | 
| 56 | WILLIAMS KING Daniel | Team ASAP - WORLD | 03:20:56.000 | 00:15:07.000 | 38.52 | 
| 57 | HATIM Kagaba |  | 03:24:47.000 | 00:18:58.000 | 37.796 | 
| 58 | SAIZONOU J. Glorad |  | 03:25:01.000 | 00:19:12.000 | 37.753 | 
| 59 | MOTTALINI Maurizio |  | 03:27:15.000 | 00:21:26.000 | 37.346 | 
| 60 | OOSTHUIZEN Thys |  | 03:27:17.000 | 00:21:28.000 | 37.34 | 
| 61 | VAN STADEN Jacques |  | 03:27:20.000 | 00:21:31.000 | 37.331 | 
| 62 | COETZEE Kris |  | 03:27:21.000 | 00:21:32.000 | 37.328 | 
| 63 | VENTER Derek |  | 03:27:21.000 | 00:21:32.000 | 37.328 | 
| 64 | HOARAU Christophe |  | 03:27:22.000 | 00:21:33.000 | 37.325 | 
| 65 | BOSHOFF Vickus |  | 03:27:22.000 | 00:21:33.000 | 37.325 | 
| 66 | DAMOUR Jean Denis |  | 03:27:22.000 | 00:21:33.000 | 37.325 | 
| 67 | SMYTH Ben |  | 03:27:24.000 | 00:21:35.000 | 37.319 | 
| 68 | VAN HEMERT Dan |  | 03:27:28.000 | 00:21:39.000 | 37.307 | 
| 69 | SKOSANA Sibusiso |  | 03:27:28.000 | 00:21:39.000 | 37.307 | 
| 71 | DA CRUZ Kelson |  | 03:27:31.000 | 00:21:42.000 | 37.298 | 
| 74 | NEUMANN Horst | Hollard Insurance | 03:29:58.000 | 00:24:09.000 | 36.863 | 
| 79 | GRONDIN Eddy Ferdinand |  | 03:40:13.000 | 00:34:24.000 | 35.147 | 
| 88 | SCHULTZ Imtiyaaz |  | 03:49:07.000 | 00:43:18.000 | 33.782 | 
| 93 | NGUBANE Siyabonga |  | 03:51:53.000 | 00:46:04.000 | 33.379 |