The Sharks booked their place in the Super Rugby finals and ended the title defence of the Bulls with a narrow 26-23 victory in Pretoria.
With the final play-off place up for grabs the Sharks produced one of their best performances of the season to upset their in-form hosts.
The Bulls had revived their title defence after going unbeaten in their past six games, but they were never able to grab the lead despite a tightly-fought contest.
The Sharks twice opened up 10-point leads, following tries from Stefan Terblanche and Lwazi Mvovo, and while the Bulls went over through Francois Hougaard it came too late to snatch victory.
The match had become a win-or-bust contest after the Waratahs thumped the Brumbies 41-7 in Sydney earlier in the day.
With the pressure on it was the Sharks who started confidently with two Pat Lambie penalties and a Frederic Michalak dropped goal in the opening 20 minutes giving them a 9-3 lead.
Morne Steyn reduced the margin with his second penalty before Sharks skipper Terblanche raced over for the game's first try on 34 minutes.
Lambie converted to open up the first of their 10-point leads, but that was reduced just before half-time when some quick thinking allowed Gerhard van den Heever to cross for a converted try.
The Bulls were then level shortly after the restart when Steyn was on target, but the Sharks surged again to claim control.
Michalak restored their lead with a 56th-minute penalty before Lambie started a breakaway that ended with Mvovo racing down the wing, albeit after receiving a suspiciously forward pass, to score with just seven minutes left.
Michalak converted to again open a 10-point lead, which proved too much for the Bulls despite Hougaard crossing over with four minutes remaining.
Scorers:
Bulls 23
Tries: F Hougaard, van den Heever
Con: Steyn 2
Pen: Steyn 3
Sharks 26
Tries: Mvovo, Terblanche
Con: Michalak, Lambie
Pen: Michalak, Lambie 2
DG: Michalak