| | 1 | 1 | Kyle Schoonbee | 25-29 | 01:04:09 | |
| | 2 | 1 | Sheldon Valjalo | 30-34 | 01:09:01 | |
| | 3 | 2 | Janno Nel | 25-29 | 01:10:54 | |
| | 4 | 1 | Leon Manders | 40-44 | 01:12:10 | |
| | 5 | 3 | James van Dongen | 25-29 | 01:12:42 | |
| | 6 | 4 | Sheldon O'Connor | 25-29 | 01:12:58 | |
| | 7 | 2 | Jason Smith | 40-44 | 01:13:35 | |
| | 8 | 2 | Jc Roos | 30-34 | 01:14:17 | |
| | 9 | 3 | Damien Botes | 30-34 | 01:14:59 | |
| | 10 | 5 | Bradly Joubert | 25-29 | 01:15:53 | |
| | 11 | 4 | Peter Baker | 30-34 | 01:16:44 | |
| | 12 | 1 | Danie Pienaar | 35-39 | 01:17:06 | |
| | 13 | 5 | Jacques Du Preez | 30-34 | 01:17:21 | |
| | 14 | 6 | Jan Rens | 25-29 | 01:17:33 | |
| | 15 | 6 | Justin Christoforos | 30-34 | 01:18:20 | |
| | 16 | 7 | Matthewstone S Mzandolo | 30-34 | 01:18:34 | |
| | 17 | 2 | Sean Wentzel | 35-39 | 01:18:37 | |
| | 18 | 8 | Arrie Van der Berg | 30-34 | 01:18:42 | |
| | 19 | 3 | Robbie Heuer | 35-39 | 01:18:51 | |
| | 20 | 7 | Schalk Burger | 25-29 | 01:19:41 | |
| | 21 | 9 | Luke Venter | 30-34 | 01:19:47 | |
| | 22 | 3 | Julien Simery | 40-44 | 01:21:03 | |
| | 23 | 10 | Lohan Swart | 30-34 | 01:21:13 | |
| | 24 | 11 | Martin Hartzenberg | 30-34 | 01:21:39 | |
| | 25 | 12 | Damian Winter | 30-34 | 01:21:47 | |
| | 26 | 4 | Johann Werth | 35-39 | 01:21:58 | |
| | 27 | 8 | Gareth Harvett | 25-29 | 01:22:11 | |
| | 28 | 4 | Egor Oussov | 40-44 | 01:22:28 | |
| | 29 | 1 | Ross Mckenzie | 45-49 | 01:22:49 | |
| | 30 | 13 | Damien Kühn | 30-34 | 01:23:42 | |
| | 31 | 5 | Raees Kajee | 35-39 | 01:23:50 | |
| | 32 | 9 | Farai Engelbrecht | 25-29 | 01:24:24 | |
| | 33 | 14 | Sibusiso Ndlovu | 30-34 | 01:24:33 | |
| | 34 | 6 | Nolan Fredericks | 35-39 | 01:24:46 | |
| | 35 | 1 | Caelen De Wet | 16-24 | 01:25:08 | |
| | 36 | 15 | Morne Wessels | 30-34 | 01:25:08 | |
| | 37 | 10 | Daniel Sanders | 25-29 | 01:25:45 | |
| | 38 | 5 | Nelson da Silva | 40-44 | 01:26:08 | |
| | 39 | 6 | Massimo De Lieto | 40-44 | 01:26:45 | |
| | 40 | 11 | Pieter Lubbe | 25-29 | 01:27:35 | |
| | 41 | 1 | Marko Ahnert | 50-54 | 01:27:38 | |
| | 42 | 7 | Dane Nortier | 35-39 | 01:27:43 | |
| | 43 | 8 | Jp Calitz | 35-39 | 01:27:43 | |
| | 44 | 2 | Tinus Strydom | 45-49 | 01:28:16 | |
| | 45 | 16 | Bethēl Sanza | 30-34 | 01:28:28 | |
| | 46 | 17 | Richard Fraser | 30-34 | 01:28:28 | |
| | 47 | 12 | Siya Molefe | 25-29 | 01:28:50 | |
| | 48 | 3 | Peter Pienaar | 45-49 | 01:29:00 | |
| | 49 | 13 | Beverly Mpofu | 25-29 | 01:29:38 | |
| | 50 | 18 | Johan Jooste | 30-34 | 01:29:39 | |
| | 51 | 19 | Bongani Mkhwanazi | 30-34 | 01:29:42 | |
| | 52 | 20 | Zandre Banks | 30-34 | 01:29:53 | |
| | 53 | 2 | Clint Bunch | 50-54 | 01:30:19 | |
| | 54 | 21 | Michael Bond | 30-34 | 01:30:51 | |
| | 55 | 3 | Ashley Benatar | 50-54 | 01:30:52 | |
| | 56 | 14 | Privy Mbanga | 25-29 | 01:30:55 | |
| | 57 | 15 | Michael Latilla-Campbell | 25-29 | 01:30:55 | |
| | 58 | 16 | Hilmar von Mansberg | 25-29 | 01:31:05 | |
| | 59 | 22 | Joshua Bassingthwaighte | 30-34 | 01:31:43 | |
| | 60 | 23 | Ketan Sahadew | 30-34 | 01:32:05 | |
| | 61 | 17 | John Buana Kayembe | 25-29 | 01:32:11 | |
| | 62 | 18 | Emil Gutsche | 25-29 | 01:32:39 | |
| | 63 | 7 | David Pelser | 40-44 | 01:32:44 | |
| | 64 | 19 | Elrico Swartz | 25-29 | 01:32:51 | |
| | 65 | 24 | Ricardo Lategan | 30-34 | 01:33:53 | |
| | 66 | 25 | Ruan Du Toit | 30-34 | 01:34:57 | |
| | 67 | 20 | Matthew van Huyssteen | 25-29 | 01:35:12 | |
| | 68 | 8 | Travis Kriel | 40-44 | 01:35:50 | |
| | 69 | 4 | Brian Skinner | 45-49 | 01:36:37 | |
| | 70 | 9 | Louis Smit | 35-39 | 01:37:11 | |
| | 71 | 10 | Rehia Giwa- Osagie | 35-39 | 01:39:55 | |
| | 72 | 21 | Graeme Buckley | 25-29 | 01:40:32 | |
| | 73 | 22 | Reinhardt Walters | 25-29 | 01:40:37 | |
| | 74 | 9 | Andrew Mwawa | 40-44 | 01:41:27 | |
| | 75 | 26 | Michael Nkutshweu | 30-34 | 01:41:35 | |
| | 76 | 2 | Keke Lehobo | 16-24 | 01:41:44 | |
| | 77 | 10 | Lucky Bembe | 40-44 | 01:42:34 | |
| | 78 | 27 | Anthony Artemides | 30-34 | 01:43:49 | |
| | 79 | 28 | Jared Poulton | 30-34 | 01:45:47 | |
| | 80 | 23 | Ameel Valjee | 25-29 | 01:46:46 | |
| | 81 | 24 | Phiko Tshainca | 25-29 | 01:47:10 | |
| | 82 | 11 | Danie Grobbelaar | 40-44 | 01:49:07 | |
| | 83 | 4 | Thomas Fritsch | 50-54 | 01:49:47 | |
| | 84 | 25 | Sikelelo Junior Rambauli Rambauli | 25-29 | 01:51:20 | |
| | 85 | 29 | Lebogang Moipolai | 30-34 | 01:52:44 | |
| | 86 | 12 | Sanveer Hariparsad | 40-44 | 01:52:47 | |
| | 87 | 5 | Jason Fritz | 50-54 | 01:53:08 | |
| | 88 | 11 | John Moffat | 35-39 | 01:54:31 | |
| | 89 | 3 | Jordan Joseph | 16-24 | 01:55:19 | |
| | 90 | 12 | Thabz Kekana | 35-39 | 01:56:02 | |
| | 91 | 1 | Mars Le Roux | 55-59 | 01:56:02 | |
| | 92 | 30 | Katlego mthembu | 30-34 | 01:59:05 | |
| | 93 | 13 | Jose Ngoy | 35-39 | 01:59:58 | |
| | 94 | 4 | Motheo Amogelang Masimola | 16-24 | 02:00:00 | |
| | 95 | 5 | Pierre Andro | 16-24 | 02:00:14 | |
| | 96 | 26 | Tyrone Hammick | 25-29 | 02:00:53 | |
| | 97 | 6 | Joshua Joseph | 16-24 | 02:04:25 | |
| | 98 | 7 | Rahil Patel | 16-24 | 02:04:53 | |
| | 99 | 5 | Trevor Buthelezi | 45-49 | 02:06:54 | |
| | 100 | 2 | Dario Torrente | 55-59 | 02:19:31 | |