Fremantle has rallied from a 31-point deficit to give themselves a shot at a top-four finish with a 20-point victory over GWS Giants at Manuka Oval on Saturday afternoon.

The 13.11 (89) to 10.9 (69) win means Fremantle will finish inside the top four and earn a double chance in September if either Sydney or Collingwood lose to St Kilda or Carlton respectively on Sunday.

Michael Walters played a starring role in his 200th game with three goals, while Caleb Serong (32 disposals with a game-high 11 clearances and a game-high 15 contested possessions) and Will Brodie (30 disposals with a game-high 19 uncontested possessions) were outstanding in the midfield.

00:14

But Fremantle were made to do it the hard way, with GWS kicking seven of the first nine goals to lead by 31 points five minutes into the second quarter. Freo responded with six of the next seven majors, including three in a lopsided third term to lead at the final change.

Lachie Ash could have put the Giants up by 10 points with 12 minutes left in the last term but missed a golden opportunity from close range. From there, Fremantle took their chances to close the game out, with milestone man Walters putting through a clutch goal after Jordan Clark's 60m bomb restored Freo's lead.

Fittingly, the outstanding Serong kicked the sealer in the final minute with a right-foot snap.

Fremantle deserved their win despite their sluggish start, dominating the disposal count 397-339, contested possessions 150-133 and inside 50s 68-45 having been behind by two in that category at half-time.

All-Australian candidate Sam Taylor was the best for GWS, who will finish the season in 16th spot with a 6-16 record.

Taylor had 12 marks (including nine intercept marks) to go with 20 touches, shutting down the returning Nat Fyfe in his first game since suffering a hamstring injury.

Jesse Hogan booted three goals against his former Club in another bright spot for the Giants, while Harry Perryman was their leading ball-winner with 24 touches.

ALL THE HIGHLIGHTS

Hogan kicked the opening two goals of the game as the Giants jumped Fremantle with four of the first five majors. Walters pulled one back before quarter-time but the Giants' ball movement was causing Freo issues.

GWS continued to enjoy the best of the territory battle in the second term, with the next three goals opening up a 31-point lead after Tim Taranto bounced one home.

Given what was at stake, Fremantle inevitably responded and kicked three goals before half-time, including a classy Nathan O'Driscoll finish, as they started to gain ascendancy to close within 11 points at the long break.

Fremantle carried that momentum into the third term, dominating the disposal count 116-65 and inside 50s 21-7 although they arguably didn’t get bang for their buck. Alex Pearce benefited from a 50m penalty to boot a rare goal, his first in the AFL since 2015, before retiring veteran David Mundy kicked truly on the siren to put the top-four hopefuls up by one point at the last change.

After Andy Brayshaw's goal early in the fourth, Jacob Hopper kicked a pair of goals to put the Giants up, but Ash spurned his chance and Fremantle booted the final four goals of the game to pull clear.

00:21

GWS GIANTS   4.3    7.4    8.7       10.9 (69)
FREMANTLE     2.2    5.5    8.8       13.11 (89) 

GOALS  
GWS Giants: Hogan 3, Hopper 2, Whitfield, Ward, Green, Riccardi, Taranto
Fremantle: Walters 3, O'Driscoll 2, Brayshaw 2, Brodie, Pearce, Mundy, Clark, Schultz, Serong

BEST  
GWS Giants: Taylor, Perryman, Hogan, Cumming, Hopper, Green
Fremantle: Serong, Brodie, Walters, Young, Pearce, Acres, Mundy

INJURIES  
GWS Giants: Nil
Fremantle: Nil 

LATE CHANGES 
GWS Giants: Nil
Fremantle: Griffin Logue replaced in selected side by Bailey Banfield

SUBSTITUTES  
GWS Giants: Cooper Hamilton (unused)
Fremantle: Darcy Tucker (unused)