Morne Steyn kicked 22 points adding to tries by Francois Hougaard and Bakkies Botha, while the error-strewn home side managed to cross the line courtesy of Bismarck du Plessis and Adrian Jacobs.
The win kept the defending champions in eighth place on the overall table, but now just three points behind the Sharks, who will be disappointed after coming into the game with so much optimism and being let down by their handling.
The Sharks were forced onto the back foot from the first whistle after Jaco Pretorius’ good run set up a ruck, from which the Sharks failed to roll away.
Morne Steyn slotted over the penalty from right in front, before the defending champions extended the lead even further.
The points came via the first try of the match - Hougaard scoring after the ball was stolen at the back of a poor line-out with the winger escaping two tackles to touch down under the post.
Steyn added the conversion before Patrick Lambie then secured the first points for the hosts with a tricky penalty from the right after the Bulls were caught offside.
However, the Sharks continued to struggle at the back as strong runs by Wynand Olivier and Dean Greyling paved the way for Botha to pick up and dive over.
South Africa's fly half Steyn again made no mistake with the extras with the men from Pretoria 15-3 up at that stage, but Lambie ensured his side did not get left too far behind with another kick from distance.
Steyn struck the upright with his next attempt and moments later made amends to keep the Bulls on top.
He then showed good work in defence, racing back to call the mark after Stefan Terblanche led a breakaway which lacked the required support close to the line.
That was the start of a good spell for John Plumtree’s men, but they were thrice let down by poor handling just metres out - Odwa Ndungane the driver on two of those occasions with Willem Alberts the culprit of an error when he knocked on twice.
Their territorial advantage eventually came to nothing and when the visitors next got down the other end, they struck a further blow to the home side in the form of a Steyn drop goal which gave them a commanding 23-6 half-time lead.
The errors kept coming after the restart with Steyn slotting over another penalty to extend the Bulls' lead.
But he himself then made a crucial error, knocking on out in front, giving momentum to an attack which led to Du Plessis crossing following numerous phases.
Lambie converted and then capitalised on another penalty which saw the gap narrowed to 10 points with just over a quarter of the game to play.
However, again Steyn thwarted the comeback with two more successful kicks.
Both sides then had chances to strike only to be let down by poor handling just metres short - Charl McLeod responsible for the hosts and Gerhard van den Heever for the visitors.
Jacobs did manage a late converted try for the men in black, but it turned out to be a consolation.
Lambie tried to at least earn a bonus point by finishing within seven points but missed a penalty after the hooter as the Sharks saw their play-off chances take a knock.
Scorers: Sharks: Tries: Bismarck du Plessis, Adrian Jacobs. Conversions: Patrick Lambie (2) Penalties: Patrick Lambie (3).
Bulls: Tries: Francois Hougaard, Bakkies Botha, Conversions: Morne Steyn (2). Penalties: Morne Steyn (5) Drop Goal: Morne Steyn