After starring against Melbourne in round one, Riewoldt produced another vintage performance to hold off the plucky Giants, who had threatened to notch their first win in Melbourne.
In a thrilling finale, the Giants cut the margin to one point with four minutes to play before Saints rookie Eli Templeton converted a long set shot to seal the win 15.5 (95) to 13.10 (88).
With their team placed among the wooden spoon contenders, Riewoldt (24 possessions and 14 marks) and veteran midfielder Lenny Hayes proved they could still deliver match-winning performances while their young teammates build their careers.
Hayes returned from suspension to play a crucial role when his team was on the ropes, dragging the Saints back into the contest after GWS had raced to a 20-point lead in the third quarter.
Ruckman Tom Hickey produced his best performance for the Saints, kicking three goals and taking eight marks in an entertaining battle with Shane Mumford.
In a scrappy match where the ball-use of both sides left a lot to be desired, Mumford's contested work was crucial in the first half.
The ruck recruit, who finished with 46 hit-outs, is proving to be a valuable addition for the Giants, with his bullocking work at stoppages helping his young teammates in the first half.
In attack, a shootout developed between Hickey and GWS big man Jonathan Giles, who each kicked three goals before the main break.
When the skill level deteriorated in the second quarter, Hayes lifted to twice set up goals for Riewoldt, and the pair combined late in the third quarter to give St Kilda a five-point lead and momentum going into the final term.
As well as Mumford, the Giants were well served by captain Callan Ward (28 possessions and eight clearances) and Devon Smith, who kicked a career-high five goals.
Prized No.2 draft pick Joshua Kelly made his debut as the substitute and had 12 possessions and three inside 50s in a classy 30-minute cameo.
The Saints and Giants grapple with each other in a minor half-time wrestle. Picture: AFL Media
ST KILDA 5.0 8.1 12.4 15.5 (95)
GREATER WESTERN SYDNEY 4.2 9.3 11.5 13.10 (88)
St Kilda: Riewoldt 5, Hickey 3, Templeton 2, Armitage, Montagna, Dempster, Ray, Dunstan
Greater Western Sydney: Smith 5, Giles 4, Townsend, Whitfield, Mumford, Cameron
St Kilda: Riewoldt, Hickey, Hayes, Armitage, Ray, Templeton
Greater Western Sydney: Mumford, Giles, Ward, Smith, Coniglio
St Kilda: Tom Hickey (foot), Gilbert (ankle)
Greater Western Sydney: Nil
St Kilda: Dylan Roberton replaced by Shane Savage in the third quarter.
Greater Western Sydney: Jacob Townsend replaced by Josh Kelly in the third quarter.
Umpires: Wenn, Findlay, Armstrong
Official crowd: 19,640 at Etihad Stadium