Sydney have fought past St Kilda by 14 points to lock in a top-four spot but have fallen just short of securing a home AFL qualifying final.
Victory guaranteed the Swans a double chance but they were unable to pull off a big enough winning margin to leapfrog second-placed Melbourne.
They led by 28 points in the third quarter but had to hold off a late Saints surge before prevailing 13.10 (88) to 11.8 (74) on Sunday.
The third-placed Swans will instead face the Demons in Melbourne.
Sydney will also have a nervous wait for the AFL's finals fixture release after livewire Tom Papley was concussed.
Papley was substituted for Sam Wicks in the second quarter after colliding with teammate Lance Franklin and hitting his head on the Marvel Stadium turf.
If Sydney's qualifying final against Melbourne is played on Thursday, September 1, Papley won't be available as he wouldn't have completed his 12-day concussion protocol.
James Rowbottom was excellent for the Swans, collecting 24 disposals, six clearances and a goal while Isaac Heeney (23 disposals, two goals), Chad Warner (20 disposals, one goal) and Will Hayward (three goals) were influential.
In his final game, Saints midfielder and former Swan Dan Hannebery turned back the clock, racking up 30 disposals and seven clearances, while Jack Sinclair, Ben Long, Seb Ross and Jack Steele were also busy.
Max King booted four first-half goals and finished with five straight.
The Saints' faint finals hopes were effectively ended when the Western Bulldogs beat Hawthorn, despite Carlton's loss to Collingwood, given their poor percentage.
Despite being up against it, St Kilda initially went goal for goal with the Swans before Sydney kicked away in the second term.
The Swans looked set to go on with it and challenge Melbourne's percentage but the Saints wouldn't go away and fought their way back into the match late in the third term
The Saints went on a late run, including booting four consecutive goals, to twice draw within seven points.
But on both occasions, Will Hayward put a dagger in the Saints' hearts with classy, clutch snaps.
Luckless Saint Hunter Clark (groin) was substituted for the retiring Dean Kent at halftime while Josh Battle was concussed in the third quarter.