Gillanders started in England's second row, while Youngs was on the bench, as first-half tries by Joe Simpson and Noah Cato paved the way for victory.
England's forward superiority played its part in gaining the early advantage before South Africa struck twice against the run of play.
But that dominance up front proved crucial in the third quarter as Alex Goode's penalties nudged England six points clear going into the last 10 minutes.
The Springboks pulled back three points to keep the tension at boiling point before prop Alex Corbisiero was driven over in injury time for the decisive try and book a final date against New Zealand at Swansea on Sunday night.
England: Alex Tait (Newcastle Falcons); Noah Cato (Saracens), Luke Eves (Bristol), Jordan Turner-Hall (Harlequins), Miles Benjamin (Worcester Warriors); Alex Goode (Saracens), Joe Simpson (London Wasps); Nathan Catt (Bath Rugby), Joe Gray (Northampton Saints), Alex Corbisiero (London Irish), Ben Thomas (Saracens), Gregor Gillanders (Leicester Tigers), Matthew Cox (Worcester Warriors), Calum Clark (Leeds Carnegie), Hugo Ellis (London Wasps, captain).
Replacements: Scott Freer (Leeds Carnegie), Billy Moss (Bath Rugby), Scott Hobson (Cornish Pirates), Jon Fisher (London Irish) for Clark 49min, Ben Youngs (Leicester Tigers), Rob Miller (Newcastle Falcons), Mark Odejobi (London Wasps) for Tait 67min.
South Africa: Wilton Pietersen; Cecil Afrika, Stefan Watermeyer, Robert Ebersohn, Lionel Mapoe; Francois Brummer, Francois Hougaard; Corne Fourie, Henri Bantjes, Frederick Kirsten, Martin Muller, Cornell Hess, Johan van Deventer, Thiliphaut Marole, Gerrit Jan van Velze (Captain).
Replacements: Wiehahn Herbst for Kirsten 41-49 & 65, Ralph Koster for Marole 53, Vainon Willis for Watermayer 67, Pieter Janse Van Vuuren for Bantjes 67.