The Stormers, who were top of the conference heading into the latest round of fixtures, trailed 25-6 after 44 minutes, with Fred Michalak, Keegan Daniel, Lwazi Mvovo all scoring tries for the Sharks, and Pat Lambie kicking 10 points.
Although Gio Aplon's two converted tries narrowed the gap to just five points with seven minutes to go, the Sharks held on to claim a valuable victory and move within five points of their opponents.
It was the Stormers who enjoyed a decent start, with Peter Grant opening the scoring after the hosts were penalised for offside.
Lambie evened the scores but another penalty from Grant gave the Stormers a 6-3 lead.
JP Pietersen managed to retrieve the ball for the Sharks straight from the kick-off and after being awarded a penalty, Charl McLeod quickly tapped before laying the ball to Michalak to dance over the line.
Lambie made no mistake with the conversion and added a penalty soon after when the visitors had entered the maul from the side.
The Sharks continued to assert their dominance and Daniel dummied his way over the whitewash for his team's second try, with Lambie again adding the extras.
Four minutes after the interval, Mvovo latched on to Marcell Coetzee's excellent pass to touch down, despite being dragged into touch by Dewaldt Duvenage.
Although Lambie failed to convert, the hosts appeared to be cantering to victory.
But Aplon took advantage of a stray Sharks pass before sprinting 60 metres to cross and the Stormers were well and truly back in the match after the full-back broke through for his side's second try, despite a suspicion of a forward pass.
Grant converted both scores to set up a nervy finale but the Sharks held on for their eighth win of the season.