Fremantle has outlasted the Sydney Swans in a low-scoring epic at Domain Stadium to remain undefeated after four rounds.

But the Swans gave the Dockers an almighty scare, coming from 48 points down at half-time to get within three points in last quarter, only for the Dockers to hold their nerve, a Chris Mayne goal icing the win 11.8 (74) to 8.12 (60) in front of 39,009 fans.

Nat Fyfe put together another extraordinary performance to help drag his side over the line. He gathered 27 touches, 16 contested, took five marks, had eight clearances and kicked 1.2 in a best on ground display.

Aaron Sandilands was dominant in the ruck, particularly in the first half, with 32 hit-outs for match. Matthew Pavlich kicked three crucial goals including a badly needed steadier in the last quarter.

The Swans fought bravely with Dan Hannebery dominating at the coalface. He had 31 disposals, 16 contested, and was a big reason for Swans resurgence in the second half.

Sam Reid was outstanding in defence with 22 disposals and 11 marks. Jake Lloyd ran hard all night gathering 25 touches and kicking a big goal in the last quarter.

Lance Franklin and Kurt Tippett kicked two goals each and if the Swans had kicked straighter they might have pinched it. John Longmire is likely to be left ruing a couple of score review decisions in the final quarter which both went against his club.    

It was a game of two extremely distinct halves. The Dockers kicked nine goals to one in the first half and appeared to have blown the Swans out of the water. Ross Lyon’s men dominated the clearances and kicked at 82% efficiency compared to the Swans 62%. But in the second the half, the Swans seized control, locking the ball in their forward half - but they just could not finished when it mattered most.

The Dockers bounced out of the gates just as they did last week kicking three goals before the Swans had even scored.

Their domination started in the middle with Sandilands and Fyfe. The home side won eight of the first nine clearances of the match. The eighth resulted in a Nick Suban goal after Fyfe was spoon-fed by Sandilands at the centre bounce.

The Dockers quarter-time lead of 19 points was cut by one point straight after break but that was as close as the Swans got for the half. Fyfe and Matt Taberner both goaled from free kicks.

Pavlich launched his second goal from 53 metres out and then defender Cam Sutcliffe sneaked forward to mark in space and extend the margin to 48 points at half-time. 

However, great teams don't go away and the Swans responded powerfully in the third quarter, with the game was played almost exclusively in their half.

They won 10 clearances to five for the quarter and had 17 inside-50s to four as they set a wall across the middle that Fremantle could not penetrate. The Swans midfield finally got to work with Hannebery gathering 11 touches for the quarter, Luke Parker eight and Kieren Jack seven.

It resulted in nine scoring shots to one for the term as John Longmire’s men trimmed the margin to 20 points. Had the Swans not missed three set shots and if Clancee Pearce didn't touch Craig Bird's accurate snap right on the line the Swans could have pinched the lead.

They kept pushing to the end - goals to Gary Rohan, Tippett and cut the margin to three points. However, Fyfe stood tall with key marks and clearances and Pavlich settled the nervy crowd with his third goal.

Chris Mayne sealed the win after a critical turnover to give the Dockers the best start to a season in their history.

FREMANTLE             4.2   9.3   9.4   11.8 (74)

SYDNEY SWANS      1.1   1.3   5.8   8.12 (60)

GOALS

Fremantle: Pavlich 3, Mayne 2, C Pearce, Suban, Fyfe, Clarke, Taberner, Sutcliffe.

Sydney Swans: Franklin 2, Tippett 2, Jetta, Parker, Rohan, Lloyd

BEST

Fremantle: Fyfe, Spurr, Ibbotson, Mundy, McPharlin, Pavlich, Sandilands Sydney Swans:  Reid, Hannebery, Lloyd, Franklin, Jack, Smith, Parker

INJURIES

Fremantle: TBA

Sydney Swans: Heeney (ankle)

SUBSTITUTES

Fremantle: Tendai Mzungu replaced Matt Taberner in the third quarter.

Sydney Swans: Gary Rohan replaced Isaac Heeney in the third quarter.

Umpires: Jeff Dalgleish, Brett Rosebury, Shane McInerney

Official crowd: 39,009 at Domain Stadium