Greater Western Sydney have shattered Port Adelaide's AFL finals dreams, coming from behind in a scrappy 19-point win at Adelaide Oval.
The Giants overcame a lacklustre start in wet and blustery conditions to claim an 11.13 (79) to 9.6 (60) win and cement their chances of a home final.
GWS managed just two goals to halftime but surged to life in the third term, booting four majors in a row during a pivotal 10-minute stretch.
Late goals to sharpshooter Jeremy Cameron and best-on-ground midfielder Dylan Shiel secured the win to propel the Giants to second place on the ladder.
The loss keeps Port Adelaide 12 points behind eight-placed North Melbourne and almost certain to miss out on playing in September.
GWS were slow to adapt to the wet conditions but lifted when it mattered, led by their outstanding young midfield brigade of Shiel (28 disposals, two goals), Toby Greene and Stephen Coniglio.
Ruckman Shane Mumford was matched early by a valiant Jackson Trengove but wore the smaller man down as the game went on, laying 10 tackles to go with 49 hitouts.
Port coach Ken Hinkley will be left to rue missed opportunities after his side failed to capitalise on a dominant first half.
The Power battled strongly to lead by 20 points at halftime but lacked firepower in the absence of injured star Charlie Dixon, his replacement John Butcher held goalless.
The game was marred by a controversial 50-metre penalty to Brad Ebert on the half-time siren.
Ebert was paid a set shot after Jeremy Cameron ran across his mark, appearing not to realise that the ball was still in play.
The tough midfielder was outstanding for the Power, booting four goals and gathering 19 disposals despite copping a hit to the back of the head which opened up a massive cut.
Robbie Gray was excellent in his 150th game, booting three goals and gathering 25 touches to give the 27,935 crowd something to cheer about.