The Penrith Panthers have booked a spot in their fourth straight grand final after a domination of the Melbourne Storm in the NRL's first preliminary final on Friday evening.

The win for the Panthers is the second time in three years they have beaten the Storm in a preliminary final, having won 10-6 at Suncorp Stadium in 2021 during the competition's bubble in south east Queensland.

The first half saw the Storm in the game for all of a handful of minutes, appearing to take early control of the possession and territory battle.

It took just a single penalty and an invitation for Penrith to go onto the attack for the Panthers to score, with Nathan Cleary orchestrating the first try for Brian To'o.

Tries off mistakes was the theme early on as Melbourne hit back just minutes later following a Nathan Cleary kick that gave away seven tackles, with Justin Olam bursting through a horror attempted tackle from the returning Izack Tago to score.

From there though, it was all Penrith.

Accor Stadium
   Crowd: 35,578

They added another two tries - through To'o again and then Sunia Turuva with Cleary popping up on both sides of the attack to lead the men from the foot of the mountains to a comfortable 18 points to 4 lead.

Both sides seemed to be at times out of control during the opening stanza, with Nelson Asofa-Solomona lucky to avoid the sin bin for a horror late shot on Cleary.

Melbourne shot themselves in the foot time and time again though, only completing at 64 per cent to halftime, while Penrith only made a single error. At halftime, the Storm had been forced to make 185 tackles to Penrith's 147, with a 7-2 error count and 5-2 penalty count both favouring the hosting side.

The second half picked up right where the first half left off.

Despite more of an arm wrestle breaking out between the two sides, Penrith still had the running of the game, and ultimately crossed through Nathan Cleary in the 53rd minute.

It came off a lovely run from Liam Martin on the right-hand side, before linking with Cleary in support.

Jarome Luai, who put his shoulder issues to bed with a superb performance, set up another try in the very next set for Dylan Edwards as Stephen Crichton and Sunia Turuva were also involved on the edge.

That try had the Panthers ahead 30 points to 4 and the game all but put to bed.

Melbourne continued to be scrappy, throwing away opportunities regularly.

Brian To'o crossed for a hat-trick in the 70th minute, with the game then slowly winding down through the final ten minutes.

Marion Seve and Josh King could both face judiciary scutiny for a high shot and a shoulder charge respectively, the Panthers slotting a penalty goal with five minutes remaining after the shot from Seve.

Match Summary

Penrith Panthers 38 (Tries: Brian To'o [3], Sunia Turuva, Nathan Cleary, Dylan Edwards; Conversions: Nathan Cleary 5/6; Penalty Goals: Nathan Cleary 2/2) defeat Melbourne Storm 4 (Try: Justin Olam)