The Cheetahs' Super Rugby winning streak came to a halt in Pretoria on Saturday as the Bulls won 26-20 in a hotly contested derby.
Two second-half tries, from Man of the Match Jano Vermaak and replacement hooker Callie Visagie, proved enough for the hosts to grab victory in a highly-entertaining game.
The result hung in the balance in the dying minutes after Cheetahs prop Trevor Nyakane crashed over for the Free Staters' only score.
The results sees the Bulls climb up to seventh place in the overall standings, one behind the Cheetahs with both teams on 23 points, three short of SA Conference leaders the Sharks.
The Cheetahs led 9-6 at the end of a high-paced and open but ultimately try-less first half.
The Bulls enjoyed 60 percent of the territory and possession in the first 25 minutes but had nothing to show for it as the Cheetahs led 6-0 thanks to two penalties from Burton Francis.
Morné Steyn finally got the hosts on the scoreboard around the half-hour mark with two penalties in the space of three minutes to level the scores.
But the Bulls' frustration continued as Francis punished another error to give the visitors the advantage at the interval.
The men in blue finally broke through after the break though as scrum-half Vermaak went on a sniping run to beat five defenders on his way to the line.
Steyn added the extras to put the Bulls four points ahead at 13-9 before the opposing fly-halves exchanged penalties to leave the Bulls up 19-12 going into the final ten minutes.
Nyakane's try from close range gave Francis the chance to bring his team level but the former Bulls man sent his conversion effort wide.
The Bulls didn't sit back though and Visagie grabbed their second try as the home pack rumbled over.
Another former Bulls fly-half, Francois Brummer, added a last-minute penalty to save the bonus point for the Cheetahs.
Tries: Vermaak, Visagie
Cons: Steyn 2
Pens: Steyn 4
Pens: Francis 4, Brummer
Bulls: 15 Jürgen Visser, 14 Akona Ndungane, 13 JJ Engelbrecht, 12 Jan Serfontein, 11 Lionel Mapoe, 10 Morné Steyn, 9 Jano Vermaak, 8 Pierre Spies (c), 7 Dewald Potgieter, 6 Deon Stegmann, 5 Juandré Kruger, 4 Flip van der Merwe, 3 Frik Kirsten, 2 Chiliboy Ralepelle, 1 Morné Mellet.
Replacements: 16 Callie Visagie, 17 Werner Kruger, 18 Paul Willemse, 20 Arno Botha, 21 Rudy Paige, 22 Louis Fouchè, 23 Ulrich Beyers.
Cheetahs: 15 Hennie Daniller, 14 Willie le Roux, 13 Johan Sadie, 12 Robert Ebersohn, 11 Raymond Rhule, 10 Burton Francis, 9 Piet van Zyl, 8 Philip van der Walt, 7 Pieter Labuschagne, 6 Heinrich Brüssow, 5 Francois Uys, 4 Lodewyk De Jager, 3 Lourens Adriaanse, 2 Adriaan Strauss (c), 1 Trevor Nyakane.
Replacements: 16 Ryno Barnes, 17 Coenie Oosthuizen, 18 Rynhard Landman, 19 Frans Viljoen, 20 Tewis de Bruyn, 21 Francois Brummer, 22 Ryno Benjamin.
Venue: Loftus Versfeld, Pretoria
Referee: Jason Jaftha (South Africa)
Assistant referees: Rasta Rasivhenge (South Africa), Sieg van Staden (South Africa)
TMO: Gerrie Coetzee (South Africa)