St Kilda have cemented their place in the top eight and denied Sydney star Lance Franklin a fairy-tale finish in his 350th match with a hard-fought 14-point victory at the SCG.
Franklin lit up his milestone match in the second term with a 1058th-career goal but it was the Saints that finished brighter for a 12.8 (80) to 9.12 (66) triumph on Thursday night.
Key defender Callum Wilkie clamped down on Franklin after the star forward threatened to spark the hosts, as the Saints (8-4) booted five goals to two in the final term to overrun the Swans.
Jack Sinclair (32 disposals, seven clearances) was superb for the Saints, whether winning the ball at stoppages or starting their ball movement from defence, while Brad Crouch (33) and Nasiah Wanganeen-Milera (30, one goal) were also important.
Max King finished with three goals as Mitch Owens and Dan Butler both booted two, while Rowan Marshall (16 disposals, 51 hitouts) dominated in the ruck as the Saints snapped a seven-match losing streak at the SCG going back to 2009.
But the Saints will be sweating on the review of a Dan Butler tackle on Nick Blakey in the third term, after their small forward brought the Swans’ defender to ground. He was soon subbed out of the match.
"Sometimes you have got to respect the conditions and how difficult it is. That ball is like soap, then you've got these bodies flying around,” Saints coach Ross Lyon said.
"We hit the scoreboard pretty well in the second half. In the last quarter, I thought we dominated, didn't we, when we kicked 5.4.”
Franklin’s first of two goals for the night took him to outright fourth among the most prolific VFL/AFL goalkickers but there would be no wild celebrations at the final siren this time.
Onballers James Rowbottom (24 disposals, nine clearances) and Chad Warner (24, six) battled hard in the absence of Swans co-captains Luke Parker and Callum Mills, as young midfielder Angus Sheldrick (19, eight) enjoyed a breakout game.
Oliver Florent (34, five) and Justin McInerney (22) also stood out with their outside run and clean ball use, while goalsneak Tom Papley joined Franklin on two goals for the Swans.
"We gave five free-kick goals away and I think we had 11 free kicks against us in the first quarter,” Swans coach John Longmire said.
"Five free-kick goals, it's extraordinary numbers Two 50m penalties in the last quarter, pretty key moments in the game. That was very costly.”
While the occasion focused on arguably the most captivating player of modern times, it was a dour opening term as the Saints managed just one goal and the Swans were kept scoreless.
Franklin then made his mark in the second term with two goals as the Swans slammed on five majors to take a nine-point advantage into the main break.
It was an arm wrestle from there and the Swans took a six-point lead into the final term, but just as against GWS and Port Adelaide at home earlier this season, they were gradually overrun.
Sydney heads to Queensland next to play Brisbane on Friday night, while St Kilda will face Richmond at the MCG on Saturday night.