The R104 route begins just west of Wonderfontein in Mpumalanga, at an intersection with the N4 National Route . It goes west for about 50 km before reaching Middelburg. It is joined by the N11from the south just before the Eastdene suburb and by the R555 from the north-east just after the same suburb and they are one road passing through Middelburg Central westwards, meeting the northern terminus of the R35 Road just after. At Walter Sisulu Street, the N11 national route becomes the section of Walter Sisulu Street going north towards Marble Hall and the R555 becomes the section of that street going south-west towards Witbank. The R104 remains co-signed with the R555, meeting the northern terminus of the R575 Road. The R104 and the R555 enter eMalahleni. They continue as Voortrekker Street up to the Witbank Long DistanceTaxi Rank, where they meet theR544 coming from Verena. As the R555 continues south to cross the N4 Highway and makes its way to Springs via Ogies, the R104 stays in close proximity to the N4 Highway, becoming the road westwards just before the R555 and N4 junction. It remains north of the N4 Highway up to the Schoongezicht suburb, where it crosses to the south of the N4 Highway as Kaldine Drive, turns west and bypasses Witbank Primary School as Collins Avenue. It bypasses KwaGuqa and remains south of the N4 Highway up to Balmoral, at the northern terminus of the R545, where it goes north of the N4 Highway. It crosses into Gauteng Province just after.
Into Gauteng, the R104 remains north of and parallel to the N4 Highway and remains one road, through Bronkhorstspruit, bypassing Mamelodi, to Pretoria Central. In Pretoria, after flying-over the N1 & N4 Platinum Route co-signage as Pretoria Street, it continues as Church Street through the Central Business District, going around Church Square & intersecting with the R101 Route. At Pretoria West, the R104 route follows and is parallel to the M4 Magalies Toll Route up to its end by the Pelindaba Toll Plaza just east of Hartbeespoort. South of Flora Park, the R101 meets the R511 Road at a 4-way junction and begins cosigning with it north-west from this junction, flying over the M4 Magalies Toll Route's Pelindaba Toll Plaza. Just after Flora Park, the R104/R511 co-signage crosses into Hartbeespoort in the North-West Province as Beethoven Street.
North West
In Hartbeespoort, at the junction with Bach Street next to the Sediba Shopping Plaza in the suburb of Melodie, the R511 becomes the road northwards towards Brits, leaving the R104 as the west-north-westerly road. After this junction, the R104 becomes Scott Street and makes up the northern border of the suburb of Schoemansville. West of Schoemansville, the R104 crosses the point where the Crocodile River enters the Hartbeespoort Dam, before reaching a 4-way junction with the R512 Route. At this intersection, the R104 meets the R512 from Broederstroom and the 2 routes are cosigned westwards from this junction, passing the Elephant Sanctuary of Hartbeespoort. After a few kilometres, the R512 turns northwards towards Brits, leaving the R104 as the road heading west towards Mooinooi. From Hartbeespoort, going passed Mooinooi, the R104 is parallel to and south of the N4 Highway. At Kroondal, The R104 goes north of the Platinum Highway and makes a direct line for Rustenburg. It meets the northern end of the R24 Road from Magaliesburg, Krugersdorp and Johannesburg, before becoming the main route through Rustenburg Central. After the Tlhabane Suburb, the R104 ends where it meets the N4.
R104 (Nelspruit)
As there is a northern bypass which was built at Nelspruit in the Mpumalanga Province for the N4 National Route, the old road through Nelspruit Central has been given to the R104 route. For that short segment through Mbombela, the road is labelled as the R104.