Cooper Cronk made a miraculous return from a shoulder injury but couldn’t steer his new side Sydney Roosters to victory over his old club Melbourne Storm in the NRL grand final, instead it was his halfback partner Luke Keary who did the damage in an emphatic 21-6 win.

The Roosters stopped the Storm making history, in their quest to become the first club to win back-to-back premierships since Brisbane Broncos 25 years ago, and to send out the retiring Billy Slater a winner, with an electric first-half display at ANZ Stadium on Sunday night, in front of 82,688.

Trent Robinson’s charges bullied and bashed Melbourne in the opening stages, forcing error after error to build an unassailable 18-0 lead. It was Keary, supported ably by Greg Inglis-clone Latrell Mitchell with a one-armed Cronk largely a passenger, ensuring the Roosters captured their first title since 2013.

Slater and Cronk dominated the headlines in the week leading up to the decider, the fullback fighting a shoulder charge ban and the halfback on a “will he/won’t he play” battle to recover his injured shoulder. In the end both veterans were available, the conjecture proving futile, though both had minimal impact on the result. Slater didn’t get the fairytale finish he craved and his close friend, though limited in effectiveness, completed the job he was signed from the Storm to do.

The Roosters edged ahead 2-0 after just three minutes through a Mitchell penalty goal, after the Victorians were caught holding down in the tackle. They made it 6-0 just four minutes later following a Felise Kaufusi knock-on that heaped more pressure on Melbourne’s try-line.

With the competition’s two best defensive teams against each other, space and attacking opportunities were expected to be rare. But a floating cut-out pass from Luke Keary caught Suliasi Vunivali badly out of position and Daniel Tupou strolled over with ease.

Mitchell couldn’t convert from the sideline but it was the minor premiers who were dominant in the early period. Their defence was brutal, they were making metres comfortably and every hit-up was carried out with relish.

The Storm were making uncharacteristic mistakes and the boisterous Bondi outfit made them pay. In the 14th minute they were in again, this time Mitchell brushing past Will Chambers to cross and then adding the extras to put Melbourne on notice.

At 12-0 down Craig Bellamy’s men were in trouble. They should have been 16-0 behind just four minutes later, but Sio Siua Tuakeiaho lost the ball as he tried to steamroll Slater on the line. It was the first piece of luck the Storm had received and they badly needed it.

Slowly they crept back into the contest, forcing a goal-line dropout and building some pressure. But the Roosters would not yield, Mitchell making it his mission to monster Chambers at every opportunity. It was State of Origin déjà vu for the Melbourne centre.

The Storm’s night went from bad to worse on 29 minutes when Cameron Munster was sin-binned for a professional foul. Nelson Asofa-Solomona knocked on and Jake Friend sprinted away, only to be hauled down by Josh Addo-Carr.

However, Munster held him down too long and was promptly marched for 10 minutes. Mitchell kicked the Roosters into a 14-0 lead that was becoming increasingly untouchable.

Six minutes later that lead became 18-0 and it was virtually game over. The Roosters caught the Storm a defender short on the right and Joseph Manu touched down.

At half-time Melbourne were left licking their wounds after a near-perfect 40 minutes of Roosters rugby league. Bellamy’s men needed divine intervention.

But the second half continued much like the first – Storm error, Roosters’ efficiency and quickly threatening the opposition’s line. On 43 minutes only the touchline stopped Blake Ferguson grabbing the Tricolours’ third try.

Melbourne thought they had finally got the breakthrough they craved when Munster crossed in the 54th minute. But Asofa-Solomona had knocked over Cronk in the lead-up and the video referee chalked it off.

Three minutes later Munster should have been in again, but Manu made an amazing defensive play to somehow knock the ball lose. It took the Storm 62 minutes to eventually score, Addo-Carr picking off a Keary pass and racing away 85 metres for the try.

But it mattered little in the scheme of things as the Roosters would not be bowed. With 11 minutes left on the clock Keary iced the contest with a 30-metre field goal. There was still time for Munster to be sin-binned again this time for a petulant kick to a prone Manu’s head, with Mitchell adding two more points.

The diminutive playmaker from Ispwich had been in his more illustrious halves partner Cronk’s shadow all season, but stood tall with the pressure heaped on in the match that mattered most.