The R23 begins at the suburb of Birchleigh in the city of Kempton Park, Ekurhuleni, Gauteng at an intersection with the M57 Municipal Route. It heads south-east, bypassing the Glen Marais suburb, before crossing the R21 freeway as High Road. It then crosses the M32 municipal road and becomes the road separating the Pomona and Bredell suburbs of Kempton Park. At Brentwood Park, it joins the M45 municipal route by way of a left turn onto Great North Road, which marks its entrance into Benoni. At the next junction, the M45 becomes the road to the left towards the Rynfield suburb, leaving the R23 as the main road into Benoni central. It crosses the N12toll highway southwards as Tom Jones Street and enters Benoni central, bypassing Lakeside Mall. It intersects with the R29 in Benoni central and joins Range View Road southwards by way of a right turn at Mackenzie Park. After half-a-kilometre, it becomes Heidelberg Road, bypassing Brakpan, and crosses the N17toll road at Dalpark, next to where Carnival City is located. By Carnival City, it intersects with Elsburg Road from Brakpan and proceeds south, bypassing Tsakane, intersecting with the R550 and R103 roads, to cross the N3 freeway and enter Heidelberg. At Heidelberg, it becomes Heidelberg-Balfour Road and bypasses Heidelberg Central to the west, being like a highway flying-over roads. It intersects with the R42 between Nigel and Vereeniging at an off-ramp west of the town centre and the northern terminus of the R549 from Deneysville at a t-junction south of the town centre. South of Heidelberg, it crosses back to the east of the N3 freeway and heads east-south-east for 35 km towards Balfour in Mpumalanga. Bypassing Balfour to the south, it intersects with the R51 Road at a roundabout and continues south-east for another 75 km, through Greylingstad, to Standerton on the banks of the Vaal River, where it meets the south-eastern terminus of the R50 from Pretoria/Delmas and the south-western terminus of the R39 from Ermelo. At the same junction, it intersects with the R546 from Kinross/Evander. It is cosigned with the R546 for a few kilometres south-east of Standerton, beginning southwards as Walter Sisulu Drive, then south-east as Nelson Mandela Drive, before they split. Just after crossing the Vaal River, in the suburb of Meyerville, the R546 becomes its own road southwards at the George Street junction while the R23 resumes south-east. From Standerton, the R23 heads south-east for 85 km before reaching its south-eastern terminus at Volksrust, where the R543 meets the N11.