Hawthorn has survived a huge scare from St Kilda to hold on for a four-point win at Etihad Stadium and set up a thrilling final-round battle for a top-four spot with Sydney.

The Hawks won 12.8 (80) to 11.10 (76) in a surprisingly close encounter with the plucky Saints, who fought it out despite losing captain Jarryn Geary to a concussion/neck injury in the last quarter. 

And, they also managed it without kicking a goal in the final term and being forced to repel multiple desperate forward forays by the Saints; the last of which was cut off by Jarman Impey with just 45 seconds left on the clock.

The win means next Saturday night's clash with the Swans will decide which team finishes in the top four. Both sides are locked on 56 points going into the clash, along with Collingwood, which is third with a slightly superior percentage to the Hawks.

The Hawks may have to face the Swans without James Frawley after the defender sat the second half out because of a hamstring strain.

Still, their positives were headlined by the successful return of ruckman Ben McEvoy from a fractured cheekbone.

McEvoy, who hadn't played since round 16, was a dominant force in attack against the Saints' defence, which was without Nathan Brown (suspension) and Jake Carlisle (late withdrawal).

He took four contested marks and kicked two goals along with his 32 hit-outs, showcasing his worth as a forward option as well as a ruckman.

Jack Gunston was their main weapon with four goals while Jaeger O'Meara was their most damaging midfielder, especially in the second quarter when Tom Mitchell was struggling with the close attention of Jack Steele.

Mitchell had 31 for the game but the Saints tagger also spent time on O'Meara after the main break, such was his influence in the first half.

The Saints were led by Seb Ross (34 disposals) while Jack Lonie kicked a career-best four goals; three in the third quarter, which kept them in the contest in what has become the "danger" term for the team.

Steele was also impressive with 29 disposals and a goal despite being tasked with running with Mitchell and O'Meara at times.

The contest looked set to play out as expected in the first quarter with the Hawks neatly transitioning the ball from defence and the Saints trying but lacking polish when it mattered.

Even though the Saints had been messy, they'd hung in there, which became their mantra for the night.

Three unanswered goals in the second gave them their first lead of the game, and although it changed three more times by half-time, they were well ahead at the clearances (28 to 17) and in contested possessions (85 to 60) and trailed by just five points at the break.

The Saints stuck around in the third, and although they still showed signs of a rebuilding side throughout the scrappy second half, they proved they still have a heartbeat by pushing a top-four contender all the way after what's been a disappointing year.

Coach Alan Richardson said there were signs of improvement from weeks gone by when they've been run over immediately after half-time.

"That was better. That was much more like four quarters," Richardson said.

"There was a period in the third quarter where the Hawks really got going but unlike what's happened in the past two weeks, where we've had pretty strong first halves - we've won both last quarters - but fallen away really badly in the third and when the opposition have got going, we just haven't been able to stop it.

"So that was really pleasing that we were able to stem that flow and get back in the game."

ST KILDA              4.4        6.6       10.9      11.10 (76)
HAWTHORN          1.3       7.5        12.6      12.8 (80)

GOALS
St Kilda: Lonie 4, Membrey 2, Billings, Gresham, Newnes, Paton, Steele
Hawthorn: Gunston 4, McEvoy 2, Breust 2, Burgoyne, Impey, Nash, Worpel

BEST 
St Kilda: Steele, Lonie, Ross, Gresham, Steven, Billings
Hawthorn: O'Meara, Gunston, Burgoyne, Mitchell, McEvoy, Worpel

INJURIES 
St Kilda: Geary (head knock)
Hawthorn: Frawley (hamstring)  

Reports: Nil

Umpires: Margetts, Williamson, Glouftsis

Official crowd: 24,795 at Etihad Stadium