Fans enjoyed a high-pressure game characterised by big hits and a never-say-die effort from both sides, but the penalties, ball handling errors and completion rates also meant many lost chances.
South Perth scored after their first set when they took advantage of an early penalty, but could not get back on the board until the 53-minute mark.
Fremantle then scored two tries after 15 minutes. It was then a game of defence for both sides for the rest of the game.
Keiran Timothy’s second try with just 12 minutes left on the clock sealed the win for the Roosters.
Fremantle coach Andrew Korn is now looking ahead to next week.
‘It is a relief to get through to the grand final. We were able to execute the plays better this week than last and it was a run we needed to have. We now need to look at the injuries and set up for next week,’ he said.
Best players for the game included Duane Butler and Billy Coughlan from Fremantle.
The premiership will be decided on Saturday at Ken Allen Field in Hilton at 3.30pm.
When the teams met in last year’s grand final, the Sea Eagles won 17-10.