The Power dominated play for most of the game, but kept the Saints in the contest with some wayward kicking in front of goal.
The home side managed just 4.11 to three-quarter time but found their kicking boots in the final term, slamming on three straight goals to secure the stirring win 7.12 (54) to 6.8 (44).
Port Adelaide midfielder David Rodan (27 possessions, seven clearances and a goal) continued his fairytale return to AFL, taking out the Peter Badcoe VC Medal for best on ground in just his second game back from a knee reconstruction.
Skipper Dom Cassisi (28 disposals) and defender Troy Chaplin (32 disposals) were both instrumental in the Power's win, while Brett Ebert, Warren Tredrea and Jay Schulz all chipped in with two goals.
Adam Schneider did his best to spark the Saints with three first-half goals and Leigh Montagna (36 disposals) and Sam Gilbert (24 disposals) battled hard for the Saints.
Port Adelaide beat St Kilda at its own game, chasing and tackling its way into a match-winning position but appeared set to pay for its inaccurate goalkicking in the third quarter.
The Power had six scoring shots in the opening 15 minutes of the term, but converted just one and the Saints wrestled back the ascendancy courtesy of a freakish Stephen Milne goal in the dying minutes.
The home side lost Tom Logan (concussion), Alipate Carlile (elbow) and also underdone duo Hamish Hartlett and Robbie Gray, both with cramp, in the final quarter of the dour clash, but still managed to tough out the game.
After the game coach Mark Williams praised his players' fighting qualities, saying it was a fitting performance from his team on Anzac weekend.
"Logan was off with concussion and Robbie Gray couldn't run, so we were paddling the water very quickly to stop the boat from sinking but our guys were the ones running. They just kept pushing," Williams said.
"At the end of the game there were a lot of injured players on both sides and every bit of courage you needed and wanted to talk about on Anzac Day was displayed out there tonight. The players will remember that (win) for a while."
Watch Mark Williams' post-match press conference »
St Kilda held the lead until half way through the final quarter, but never really looked dangerous going forward.
Star utility Brendon Goddard filled in for injured skipper Nick Riewoldt with five goals against Fremantle last weekend, but was ineffective in attack on Saturday night.
It didn't help Goddard's cause that the Saints put extra numbers behind the ball and were often caught without a single forward inside 50.
Justin Koschitzke failed to make an impact in the slippery conditions and after the game coach Ross Lyon said his side would continue to search for viable replacements for Riewoldt.
"We just couldn't find an avenue to goal and struggled to take marks inside 50. I felt we slaughtered the ball (going forward) and we certainly over used the handball in the first half," Lyon said.
Watch Ross Lyon's post-match press conference »
St Kilda will now prepare to take on the Western Bulldogs at Etihad Stadium on Friday night, while Port Adelaide will play cross-town rivals Adelaide on Saturday.
Port Adelaide 0.5 2.7 4.11 7.12 (54)
St Kilda 3.2 4.4 6.5 6.8 (44)
GOALS
Port Adelaide: Ebert 2, Schulz 2, Tredrea 2, Rodan
St Kilda: Schneider 3, Fisher, Gwilt, Milne
BEST
Port Adelaide: Rodan, Chaplin, Brogan, Cassisi, Ebert
St Kilda: Schneider, Montagna, Gilbert, Fisher
INJURIES
Port Adelaide: Logan (concussion), Carlile (elbow)
St Kilda: Nil
REPORTS: Nil
Umpires: Luke Farmer, Stefan Grun, Ray Chamberlain
Official crowd: 23,355
The views in this story are those of the author and not necessarily those of the clubs or the AFL.