St Kilda has kept its finals hopes alive with an upset 29-point win over in-form Sydney on Saturday night.

The Saints' pressure was relentless at Marvel Stadium as they bucked a three-game losing run to snap the Swans' winning streak at five.

SAINTS MATCH CENTRE: View all news, stats and videos from Round 21

Small forward Jack Higgins slotted an equal career-high four goals for St Kilda, while teammate Dean Kent was next best with three in a match in which the Saints increased their lead at each change.

The 14.9 (93) to 10.4 (64) result puts St Kilda two points outside the top eight with matches still to be played on Sunday.

Saints captain Jack Steele was outstanding, topping the possession count with 34 to go with one goal, seven tackles and six clearances.

Swans superstar Lance Franklin was blunted and kept to two touches in the first half before finishing the game with just one goal.

Max King, who was strong in the opening stages and nailed an impressive snap in the third term in a two-goal effort, didn't finish the match due to a groin problem.

Trailing 50-32 at half-time, the Swans slotted the first two goals of the third term to reduce the margin to just six points.

But St Kilda rebounded with a four-goal run to open up a 76-52 lead heading into the fourth quarter.

They squandered a number of opportunities early in the final term as the Swans got within 15 points before running away with the last three goals.

The Swans were forced into a late change when Callum Mills (achilles soreness) pulled out moments before the first bounce.

Higgins hits the mark

Jack Higgins had 23 disposals and was one of the best players on the ground when these teams met in round 12, but he missed two late shots at goal that would have put the Saints in front and ended the match with 1.6 as the Swans won by nine points.

It was a rare off-day in front of goal for the small forward who has now kicked 23.10 in the 16 other matches he’s played in his first season at St Kilda.

Higgins lit up the Saints in the first half as he snapped three goals straight and ended the day with an equal career-high four goals and only one behind to go with 16 disposals and a winning grin this time.

Man of Steele at his best in Saints century

Jack Steele was superb in his 100th game as a Saint. Photo: AFL Photos.

Jack Steele has almost had to carry his team at times this season but he had plenty of support this week in the St Kilda’s upset victory.

The co-captain still led the way as he gathered a game-high 34 disposals, with 14 of those contested, six clearances and a goal. Steele also wrapped up seven tackles as the Saints beat the red-hot Swans with 65 tackles to 43 and better pressure around the ground.

What a steal Jack has been since arriving for a future second-round pick in 2016 as he reaches 100 games for his second club. 

ST KILDA  5.0  8.2  12.4  14.9 (93)  
SYDNEY  4.1  5.2  8.4  10.4 (64)

GOALS
St Kilda: Higgins 4, Kent 3, King 2, Membrey 2, Sharman 2, Steele,
Sydney: Gulden 2, Dawson 2, Papley 2, Hayward 2, Franklin, Florent,

BEST
St Kilda: Steele, Higgins, Marshall, Dunstan, Hill, Jones
Sydney: Parker, Dawson, Lloyd, Florent, Papley

INJURIES
St Kilda: King (adductor)
Sydney: Nil

LATE CHANGES
St Kilda: Nil
Sydney: Mills (Achilles soreness) replaced in selected side by Clarke

SUBSTITUTES
St Kilda: Bytel (replaced King)
Sydney: Clarke (unused)