The visitors handled the slippery conditions better than the hosts in the opening 10 minutes, with the Storm coughing up possession three times in the Sharks' half.
A Melbourne handling error close to their own line looked to gift the Sharks the opening try, but the play was called back for a differential penalty against Cronulla at the scrum.
It took some Cooper Cronk brilliance to set up Melbourne's first scoring opportunity, with a 40-20 putting the Storm deep in Sharks territory. A high tackle from James Maloney on Billy Slater subsequently allowed Cameron Smith to kick the opening points of the match.
A Suliasi Vunivalu error near the Storm line then handed Cronulla another golden opportunity to score, but Jack Bird's final pass to Gerard Beale floated forward, with the winger on a clear path to the line.
The Storm made a strong opening to the second half, with Slater's long run and a spilt high ball from Valentine Holmes putting the Sharks on the back foot. Gritty defence from the Sharks held out the home side and another error from the Storm allowed Maloney to level the scores with a penalty goal in the 56th minute.
The Storm pressured the Sharks line, but could not find the target with their kicking game, allowing the Sharks to claim victory in the final 10 minutes.