| 1 | TERLOUW Jaedon | | 02:09:56.000 | - | 44.792 |
| 2 | GIBBONS Ryan | Lidl - Trek | 02:09:57.000 | 01.000 | 44.786 |
| 3 | PRITZEN Marc Oliver | Team Honeycomb 226ers | 02:09:57.000 | 01.000 | 44.786 |
| 4 | MAIN Kent | Fly Cool Collective | 02:10:55.000 | 59.000 | 44.456 |
| 5 | ROLLER Gustav | Crabbé-Dstny U19 | 02:11:34.000 | 1:38.000 | 44.236 |
| 6 | SCHUTTE Ryno | | 02:11:35.000 | 1:39.000 | 44.231 |
| 7 | CLAASSEN Adian | | 02:11:36.000 | 1:40.000 | 44.225 |
| 8 | STEHLI Felix | Team Vorarlberg | 02:11:36.000 | 1:40.000 | 44.225 |
| 9 | JANSE VAN RENSBURG Reinardt | Team Tshenolo Pro Cycling | 02:11:48.000 | 1:52.000 | 44.158 |
| 10 | KLOPPER Christiaan | Team Tshenolo Pro Cycling | 02:12:12.000 | 2:16.000 | 44.024 |
| 11 | BASSON Gustav | Team Tshenolo Pro Cycling | 02:12:13.000 | 2:17.000 | 44.019 |
| 12 | VAN NIEKERK Emile | Madar Pro Cycling Team | 02:12:13.000 | 2:17.000 | 44.019 |
| 13 | LANGE Tyler | China Anta - Mentech Cycling Team | 02:12:14.000 | 2:18.000 | 44.013 |
| 14 | BOSHOFF Jordan | | 02:12:14.000 | 2:18.000 | 44.013 |
| 15 | HOFMEYR Wynand | Team ASAP - WORLD | 02:12:15.000 | 2:19.000 | 44.008 |
| 16 | RADEMAN-LUDEKE Travis | | 02:12:16.000 | 2:20.000 | 44.002 |
| 17 | VISAGIE Willem | | 02:12:16.000 | 2:20.000 | 44.002 |
| 18 | BOTHA Wessel | Team Honeycomb 226ers | 02:12:17.000 | 2:21.000 | 43.996 |
| 19 | MOOLMAN Warren | Madar Pro Cycling Team | 02:12:21.000 | 2:25.000 | 43.974 |
| 20 | DOWNES Brandon | Melon Mobile RealPay Pro Cycling | 02:12:24.000 | 2:28.000 | 43.958 |
| 21 | VAN DYK Jacob Charles | Team Honeycomb 226ers | 02:12:25.000 | 2:29.000 | 43.952 |
| 22 | MASEMOLA Rodney | Team Tshenolo Pro Cycling | 02:12:27.000 | 2:31.000 | 43.941 |
| 23 | DA SILVA Tiano | The Hurricane & Thunder Cycling Team | 02:13:01.000 | 3:05.000 | 43.754 |
| 24 | MARAIS Cobus | | 02:15:23.000 | 5:27.000 | 42.989 |
| 25 | TROTZKY Johann | Team Honeycomb 226ers | 02:16:13.000 | 6:17.000 | 42.726 |
| 26 | SYMM Matthew | WAC Team Hoboken | 02:16:13.000 | 6:17.000 | 42.726 |
| 27 | LUBBE Joshua | | 02:16:13.000 | 6:17.000 | 42.726 |
| 28 | DIKE Joshua Ethan | Tenerife - Bike Point - Gsport | 02:16:17.000 | 6:21.000 | 42.705 |
| 29 | KIECK Blaine | CC Villeneuve Saint Germain | 02:16:48.000 | 6:52.000 | 42.544 |
| 30 | BURRELL Rhys | Action Cycles | 02:16:53.000 | 6:57.000 | 42.518 |
| 31 | BARNES OLIVIER Carter | Picusa Academy | 02:16:54.000 | 6:58.000 | 42.513 |
| 32 | NIEUWOUDT Willem Johannes | | 02:16:54.000 | 6:58.000 | 42.513 |
| 33 | WOEST Kieran | | 02:16:55.000 | 6:59.000 | 42.508 |
| 34 | THIEL Marco | | 02:16:55.000 | 6:59.000 | 42.508 |
| 35 | MOIR Luke | | 02:16:56.000 | 7:00.000 | 42.502 |
| 36 | AMBROSI Massimiliano | | 02:16:56.000 | 7:00.000 | 42.502 |
| 37 | ENGELBRECHT Carlo | Team ASAP - WORLD | 02:16:56.000 | 7:00.000 | 42.502 |
| 38 | HORNE Matthew | | 02:16:56.000 | 7:00.000 | 42.502 |
| 39 | CHRISTENSEN Reuben | | 02:16:58.000 | 7:02.000 | 42.492 |
| 40 | KRUGER Casper | Team Honeycomb 226ers | 02:16:59.000 | 7:03.000 | 42.487 |
| 41 | SALZWEDEL Zane | Team On Track | 02:16:59.000 | 7:03.000 | 42.487 |
| 42 | HAVENGA Brendan | | 02:17:00.000 | 7:04.000 | 42.482 |
| 43 | NICHOLSON Rohnan | Gepla-Watersley R+D Road Cycling Team | 02:17:00.000 | 7:04.000 | 42.482 |
| 44 | RUWIEL Luca | | 02:17:00.000 | 7:04.000 | 42.482 |
| 45 | COUTAUD Marius | Team Siata | 02:17:02.000 | 7:06.000 | 42.471 |
| 46 | BEUKES Cronje | | 02:17:02.000 | 7:06.000 | 42.471 |
| 47 | STEENKAMP Alwyn | Melon Mobile RealPay Pro Cycling | 02:17:03.000 | 7:07.000 | 42.466 |
| 48 | ROGOTZKI Felix | | 02:19:02.000 | 9:06.000 | 41.86 |
| 49 | VAN DER WALT Henro | | 02:19:18.000 | 9:22.000 | 41.78 |
| 50 | GOUVERIS Bradley | | 02:19:18.000 | 9:22.000 | 41.78 |
| 51 | COETZEE Lenre | | 02:20:53.000 | 00:10:57.000 | 41.311 |
| 52 | GUMEDE Siyanda Mthobeleni | | 02:20:58.000 | 00:11:02.000 | 41.286 |
| 53 | HAMMON Keenan | | 02:20:59.000 | 00:11:03.000 | 41.281 |
| 54 | STRYDOM Reinhardt | | 02:21:16.000 | 00:11:20.000 | 41.199 |
| 55 | VAN RENSBURG Bladen | | 02:22:31.000 | 00:12:35.000 | 40.837 |
| 56 | MAPHANGA Bongani | | 02:22:32.000 | 00:12:36.000 | 40.833 |
| 57 | SCHOLTZ Kevin | | 02:22:32.000 | 00:12:36.000 | 40.833 |
| 58 | PIETERSEN Aaron | | 02:23:47.000 | 00:13:51.000 | 40.478 |
| 59 | BOTES Wyatt | | 02:23:47.000 | 00:13:51.000 | 40.478 |
| 60 | BOTLHOLE Matlhogonolo | | 02:23:47.000 | 00:13:51.000 | 40.478 |
| 61 | DEARE Christian | | 02:23:52.000 | 00:13:56.000 | 40.454 |
| 62 | CHRISTENSEN Joshua | | 02:23:53.000 | 00:13:57.000 | 40.449 |
| 63 | BREEDT Erik | | 02:24:42.000 | 00:14:46.000 | 40.221 |
| 64 | SHELLY David | | 02:25:07.000 | 00:15:11.000 | 40.106 |
| 65 | MACHABA Matome | Team Siata | 02:25:07.000 | 00:15:11.000 | 40.106 |
| 66 | FOURIE Benjamin | | 02:25:14.000 | 00:15:18.000 | 40.073 |
| 67 | KULSEN Ethan | Rhadsport Team EGK | 02:26:39.000 | 00:16:43.000 | 39.686 |
| 68 | LE ROUX Daniel | Absolute Motion Garden Route | 02:26:39.000 | 00:16:43.000 | 39.686 |
| 68 | LE ROUX Daniel | Team On Track | 02:26:39.000 | 00:16:43.000 | 39.686 |
| 69 | HURTER Ivan | | 02:26:40.000 | 00:16:44.000 | 39.682 |
| 70 | KOZUL Mateo | | 02:26:42.000 | 00:16:46.000 | 39.673 |
| 71 | DU PLOOY Rohan | Fly Cool Collective | 02:26:43.000 | 00:16:47.000 | 39.668 |
| 72 | ROODT Keanan | Fly Cool Collective | 02:26:43.000 | 00:16:47.000 | 39.668 |
| 73 | SHELLY Gavin | | 02:26:43.000 | 00:16:47.000 | 39.668 |
| 74 | MARITZ Thinus | | 02:26:43.000 | 00:16:47.000 | 39.668 |
| 75 | MOKOENA Thabiso | | 02:26:43.000 | 00:16:47.000 | 39.668 |
| 76 | POSTHUMUS Cullen | | 02:26:43.000 | 00:16:47.000 | 39.668 |
| 77 | HLAKO Selaelo | | 02:26:45.000 | 00:16:49.000 | 39.659 |
| 78 | MAHLANGU Thokozani | | 02:26:45.000 | 00:16:49.000 | 39.659 |
| 79 | LOCH Markus | | 02:26:46.000 | 00:16:50.000 | 39.655 |
| 80 | PUTTERILL Josh | | 02:26:46.000 | 00:16:50.000 | 39.655 |
| 81 | SUJEE Masood | | 02:26:47.000 | 00:16:51.000 | 39.65 |
| 82 | LIEBENBERG Luke Owen | | 02:26:47.000 | 00:16:51.000 | 39.65 |
| 83 | LUBBE Elijah | | 02:26:48.000 | 00:16:52.000 | 39.646 |
| 84 | GERBER James | | 02:26:48.000 | 00:16:52.000 | 39.646 |
| 85 | STEDMAN Alastair | | 02:26:48.000 | 00:16:52.000 | 39.646 |
| 86 | TYAPA Ongeziwe | | 02:26:48.000 | 00:16:52.000 | 39.646 |
| 87 | ALDUM Stephan | | 02:26:49.000 | 00:16:53.000 | 39.641 |
| 88 | RHEEDERS Josh | | 02:26:54.000 | 00:16:58.000 | 39.619 |
| 89 | HAY Jared | Fly Cool Collective | 02:27:02.000 | 00:17:06.000 | 39.583 |
| 90 | JANNEKE Clinton | | 02:31:56.000 | 00:22:00.000 | 38.306 |
| 91 | HORNE Nicholas | | 02:31:59.000 | 00:22:03.000 | 38.294 |
| 92 | BRUMMER Brian | | 02:32:00.000 | 00:22:04.000 | 38.289 |
| 94 | WRIGHT Cameron | | 02:33:42.000 | 00:23:46.000 | 37.866 |
| 96 | KLEINSMIT Jose | | 02:33:48.000 | 00:23:52.000 | 37.841 |
| 97 | JOOSTE Chris | | 02:33:48.000 | 00:23:52.000 | 37.841 |
| 99 | DAMASKINOS Zandor | | 02:35:30.000 | 00:25:34.000 | 37.428 |
| 100 | VIEDE Kyle | | 02:35:36.000 | 00:25:40.000 | 37.404 |
| 101 | GULWAKO Sivuyile | | 02:39:22.000 | 00:29:26.000 | 36.52 |
| 103 | BOTES Ty | | 02:40:43.000 | 00:30:47.000 | 36.213 |
| 104 | BARAC Darian | | 02:40:43.000 | 00:30:47.000 | 36.213 |
| 109 | NORTHCOTE Leonard | | 02:42:28.000 | 00:32:32.000 | 35.823 |
| 112 | SCOTT John-Robert | | 02:43:24.000 | 00:33:28.000 | 35.618 |
| 117 | MABUZA Mosa | | 02:46:49.000 | 00:36:53.000 | 34.889 |
| 118 | VERMEULEN Luan | | 02:46:56.000 | 00:37:00.000 | 34.864 |
| 121 | GUY William | | 02:48:10.000 | 00:38:14.000 | 34.609 |
| 123 | SELALA Tlotlo | Team Siata | 02:50:59.000 | 00:41:03.000 | 34.038 |
| 127 | SEKHETHELA Nyakallo | | 02:59:07.000 | 00:49:11.000 | 32.493 |
| 128 | PRINSLOO Diwan | | 03:06:38.000 | 00:56:42.000 | 31.184 |
| 133 | SARILA Ntsako | | 03:29:41.000 | 01:19:45.000 | 27.756 |
| 135 | MSIBI Philani | | 03:47:24.000 | 01:37:28.000 | 25.594 |
| 136 | JACOBS Zuan | | 04:42:06.000 | 02:32:10.000 | 20.631 |