Melbourne have secured a NRL preliminary finals berth with a pulsating 16-10 win at AAMI Park, forcing defending premiers North Queensland into a do-or-die clash next weekend with Brisbane.
It was some revenge on Saturday night for the Storm, who last season were sent crashing out in their preliminary final against the Cowboys at the same venue.
They will enjoy a week off, as North Queensland host the Broncos.
Melbourne's kicking game, including a 40-20 by skipper Cameron Smith, proved key, particularly in the dying stages.
The minor premiers and the titleholders played out an absorbing battle with the teams locked at 6-6 at halftime.
Smith broke the deadlock with a penalty goal in the 49th minute and then Storm centre Cheyse Blair made a crucial strip on Cowboys five-eighth Michael Morgan, with prop Jesse Bromwich burrowing over in the following set to make it 14-6.
It looked like the home side would take control of the match but Morgan made amends soon after when he fired a ball to winger Kyle Feldt, who dived over in the corner.
Johnathan Thurston failed to convert to leave the score at 14-10.
That was extended by Smith with Feldt giving away a silly penalty as he tackled Blair.
The Storm dominated early, throwing everything at their rivals.
After 20 minutes, they had had 64 per cent of possession and 73 per cent of territory but couldn't crack the North Queensland defence until the 32nd minute.
Winger Suliasi Vunivalu collected his 23rd try of the season when he pounced on a ball lost by Cowboys centre Kane Linnett.
The flying Fijian turned on the jets to run 60 metres, burning off Thurston to touch down.
However, the Cowboys then gained some momentum which paid off in the final minute of the half with a kick by Thurston ricocheting off a Storm player. It was scooped up by Lachlan Coote, who found Antonio Winterstein in the corner.