Morne Steyn kicked all his team's points as the Bulls battled to an 18-13 Super Rugby victory over the Sharks at Loftus Versfeld on Friday.
All the points were scored in the second half after the scores were locked at 0-0 at half time.
The Bulls used their traditional kicking game to devastating effect as Steyn peppered the Sharks back three with testing high balls while lock Juandre Kruger ruled at the line-outs, securing precious possession under pressure and stealing a handful of throws off the visitors.
A brutally physical but somewhat disjointed opening period left the scoreboard unmoved as the opposing place-kickers missed no less than five attempts at goal between them.
The normally ultra-reliable Steyn missed two very kickable penalties, as did Patrick Lambie, while Riaan Viljoen was inches off target with a 60m effort.
The Bulls made a comedy of handling errors, making 11 mistakes with the ball in hand in the first stanza.
The Sharks on the other hand found themselves on the wrong side of referee Jonathan Kaplan's whistle because of undisciplined play.
It was a different story in the second half however as Steyn landed points from all over the park to build a 12-point lead for the hosts.
The Pretoria-based side enjoyed most of the possession and with it the territory in the second period but they struggled to pierce the Sharks' defences.
A late try from replacement loose forward Jacques Botes, following Lwazi Mvovo's initial break, dragged the Sharks back into contention however, setting up a grandstand finish in the process.
But despite dominating the closing stages, the visitors fell just short in the end and will have to head back to Durban with nothing more than a losing bonus point.
A disappointed Sharks captain Keegan Daniel was left to reflect on another narrow loss to the Bulls.
"It's always a tough game at Loftus, we weren't clinical enough in the first half, but it was a pretty good game overall," said Daniel after the final whistle.
"They got some easy points from us, our discipline let us down and we'll need to look at those silly mistakes that let us down. The boys never gave up, hats off to them and in the end it could have gone either way."
For the Bulls:
Pens: Steyn 5
For the Sharks:
Pens: Lambie 2
Bulls: 15 Zane Kirchner, 14 Akona Ndungane, 13 Johann Sadie, 12 Francois Venter, 11 Bjorn Basson, 10 Morne Steyn, 9 Francois Hougaard, 8 Pierre Spies (c), 7 Jaques Potgieter, 6 Deon Stegmann, 5 Juandre Kruger, 4 Flip van der Merwe, 3 Werner Kruger, 2 Chiliboy Ralepelle, 1 Dean Greyling.
Replacements: 16 Willie Wepener, 17 Frik Kirsten, 18 Wilhelm Steenkamp, 19 CJ Stander, 20 Jano Vermaak, 21 Louis Fouche, 22 JJ Engelbrecht.
Sharks: 15 Riaan Viljoen, 14 Louis Ludik, 13 JP Pietersen, 12 Tim Whitehead, 11 Lwazi Mvovo, 10 Patrick Lambie, 9 Frederic Michalak, 8 Ryan Kankowski, 7 Marcell Coetzee, 6 Keegan Daniel (c), 5 Anton Bresler, 4 Steven Sykes, 3 Jannie du Plessis, 2 Bismarck du Plessis, 1 Dale Chadwick.
Replacements: 16 Craig Burden, 17 Wiehahn Herbst, 18 Ross Skeate, 19 Jacques Botes, 20 Charl McLeod, 21 Meyer Bosman, 22 Paul Jordaan.
Referee: Jonathan Kaplan (South Africa)