The lead changed eight times in a see-sawing second half at Engie Stadium but a Toby Greene-inspired Giants side found the winning edge to post a 15.14 (104) to 14.9 (93) result.
Sunday's win means the Giants can finish no lower than sixth, guaranteeing themselves a home final.
But GWS will be sweating on the fitness of midfielder Stephen Coniglio, who was substituted out before halftime with concussion.
Attempting to lay a tackle in the second quarter, Coniglio's head made contact with Marcus Windhager's hip.
The Giants will hope the veteran midfielder will benefit from the pre-finals bye to be fit and firing in time for September.
St Kilda youngster Darcy Wilson's five-goal effort was not enough, while Greene came to life in the last quarter and finished with four goals from 17 touches.
Tom Green (one goal, 31 disposals, 13 clearances) was just as crucial, while Max Gruzewski hit the scoreboard with three goals.
Nasiah Wanganeen-Milera, who re-signed with the Saints on a two-year deal earlier in the week, struggled to impact the game and finished with three behinds, 23 disposals and seven clearances.
GWS defender Harry Himmelberg got his 200th game off to the perfect start with a long bomb from the 50-metre arc for the opening goal.
The home side ran hot with their clearance work to slot four early goals but could only take a 10-point lead at quarter-time, with the Saints wrestling momentum their way.
St Kilda forward Isaac Keeler had outworked three Giants defenders to dribble the ball towards goal, before teammate Lance Collard completed the move by just getting his boot on the ball for a major.
Collard popped up again to launch the visitors ahead in the second quarter before Giants ruck Kieren Briggs' wayward shot at goal levelled the scores at 6.6 (42).
Wanganeen-Milera could only give St Kilda a one-point lead at halftime.
Both sides continued to trade blows in a third-quarter arm wrestle, with the Saints unable to grow their one-point lead at the final change.
It was Callum Brown who put the Giants firmly ahead in the fourth quarter as Greene took two superb marks on the way to victory.