The Sharks' fourth victory in a row lifted them to sixth in the standings and they also moved to within five points of the Stormers who still top the South African conference.
"The South African derbies can be tough and you have to be on your toes to win them," Sharks captain Keegan Daniel said in a pitch-side interview.
"We came up with a new game-plan after the loss to the Chiefs and it has worked out for us," he added.
The Sharks were full value for their victory as they ran in three tries to two against a Stormers' defence which had conceded just 12 tries in their previous 11 matches
The visitors made the early running eased to a 6-3 lead thanks to two successful penalty kicks from flyhalf Peter Grant with the Sharks replying through a penalty from fullback Patrick Lambie.
But the hosts soon began dominating the set pieces and outmuscling their opponents at the breakdown and they breached the Stormers' defence in the 18th minute when former France flyhalf Frederic Michalak dotted down after scrumhalf Charl McLeod had taken a quick tap penalty.
Lambie extended the lead with his second penalty before the Sharks went to the halftime break holding a 20-6 lead thanks to a try from No. 8 Daniel after flanker Willem Alberts had been held up just short of the Stormers' line.
The Sharks grabbed their third try just after the restart when flank Marcell Coetzee surged upfield before off-loading to left wing Lwazi Mvovo who crashed over in the corner.
The score invigorated the Stormers who claimed their first when fullback Gio Aplon scooped up a loose pass from Michalak on the Sharks' 10-metre line to outstrip the cover defence on his way to a converted try.
The Stormers, trailing by 12 points, turned down a number of kickable penalties in search of a try but they were repelled by a determined Sharks' defensive effort.
With eight minutes left the Cape Town-based Stormers set up a tense finish after Aplon went over for his second try following a jinking 40-metre run past three players but the Sharks held on.
Stormers captain Jean de Villiers lamented his team's failure to take their chances.
"We probably didn't capitalise on our opportunities and we made a lot of mistakes but I do think the best team won," said De Villiers.