Fremantle has withstood an extraordinary performance from an undermanned Sydney Swans side to secure its second home preliminary final in three seasons.
The Swans entered the game without Lance Franklin (illness), Kieren Jack (knee), Luke Parker (ankle) and Nick Smith (hamstring), and lost Sam Reid to a hamstring injury in the second term but pushed the Dockers to within nine points of an incredible upset.
But the Dockers' composure in front of goal proved the difference in the end.
They won 10.9 (69) to 7.18 (60) to lock in a home preliminary final for the second time in their history. They will play Hawthorn, Western Bulldogs or Adelaide on the Friday night of preliminary final weekend.
The Swans now face a test next Saturday night against the winner of Richmond and North Melbourne at ANZ Stadium to see if they will travel to Perth again to face West Coast.
The Swans will likely be without Reid for the rest of the finals with the key forward subbed out immediately after limping from the field in the second quarter with a hamstring strain.
The Dockers suffered a blow pre-game with Luke McPharlin ruled out with calf soreness, while key forward Matt Taberner was also replaced with Tendai Mzungu and Clancee Pearce coming into the side.
The Swans were brave and won the inside 50 count 53-41, but they kicked 1.7 from set shots in the first half and it came back to bite them. They also kicked 2.5 in the last quarter including the last four scores of the match, all of them points.
At the other end, Michael Walters and Hayden Ballantyne were flawless in front of goal kicking three straight each.
The Dockers dominated the clearances 42-28, Aaron Sandilands had 43 hit-outs and five clearances, while Nat Fyfe collected 32 touches and eight clearances on return although he limped from the ground in the last quarter.
Lachie Neale (32 disposals and a goal), David Mundy (27) and Stephen Hill (26) were all pivotal through the midfield.
But none were better than Josh Kennedy who was easily the Swans' best with 39 disposals, his 11th straight game of 30 possessions or more.
Dan Hannebery was also superb with 34 disposals and Adam Goodes was outstanding all day with 25 disposals, all of them accompanied by more boos from sections of the Domain Stadium crowd.
Jarrad McVeigh and Rhyce Shaw provided damaging run from half-back while Ted Richards and Heath Grundy held firm.
Kurt Tippett kicked three important goals, including two in the last quarter but the inaccuracy of his teammates was costly.
FREMANTLE 4.1 6.4 8.8 10.9 (69)
SYDNEY SWANS 1.6 2.11 5.13 7.18 (60)
GOALS
Fremantle: Walters 3, Ballantyne 3, Mayne, Clarke, Neale, Barlow
Sydney Swans: Tippett 3, Reid, Laidler, McVeigh, Towers
BEST
Fremantle: Fyfe, Neale, Mundy, Sandilands, Walters, Hill, Ballantyne
Sydney Swans: Kennedy, Hannebery, McVeigh, Goodes, Shaw, Grundy, Richards
INJURIES
Fremantle: Luke McPharlin (calf) replaced by Tendai Mzungu before the game
Sydney Swans: Sam Reid (hamstring)
SUBSTITUTES
Fremantle: Clancee Pearce replaced Nick Suban in the fourth quarter
Sydney Swans: Zak Jones replaced Sam Reid in the second quarter
Reports: Nil
Umpires: Chamberlain, Margetts, Findlay
Official crowd: 40,071 at Domain Stadium