Sharks five-eighth Joe Pietersen scored a try four minutes from full-time to hand his side a tense 18-13 victory over the Stormers in their Super Rugby clash at Newlands.
Pietersen came back to haunt his former team as he added a conversion and two penalties to go with a penalty try awarded to the visitors early in the second half on Saturday.
The Stormers, who led 10-3 at half-time, scored a try from wing Leolin Zas and flyhalf Kurt Coleman added two penalties and a conversion.
The Sharks maintained their unbeaten start to the season, but it was a first taste of defeat for new Stormers coach Robbie Fleck.
After slotting a penalty each, the Stormers bagged the opening try when Zas profited from a fortunate bounce following a kick from Cheslin Kolbe that eluded Sharks full-back Willie le Roux.
Zas performed a neat juggling act and was able to score just before the half-hour mark.
The Sharks levelled the game six minutes into the second half when they were awarded a penalty try after Stormers flanker Siya Kolisi kicked the ball out of the hands of visiting scrumhalf Cobus Reinach.
Kolisi received a yellow card and Pietersen added the conversion.
The visitors then took the lead for the first time when Pietersen landed a penalty from the halfway line after the Stormers were penalised at the breakdown.
Having earlier missed an attempt from out wide, Coleman levelled the game again with another penalty awarded for a dangerous tackle by Sharks centre Andre Esterhuizen.
The contest, however, was decided when Springbok wing JP Pietersen broke the Stormers' defensive line and fed his rampaging namesake Joe Pietersen, who held off the attention of Kolbe to touch down in the corner.