Adriaan Strauss marked his record-breaking appearance with a hat-trick as the Bulls beat the Stormers 33-23 at Loftus on Saturday.
After four losses on the trot since their opening day win over the Hurricanes, this derby victory is a significant boost for the men from Pretoria.
The day belonged to former Springbok captain Strauss, who celebrated the occasion of becoming the most-capped South African Super Rugby player of all time (149) in dream fashion, scoring a hat-trick in front of the Loftus faithful.
The Bulls had to make a quick reshuffle to their starting line-up prior to the match as they lost number eight Tim Agaba and wing Travis Ismaiel in the warm-up, with Hanro Liebenberg shifting to the back of a scrum and Hendre Stassen coming off the bench in to the lock position while Jonny Kotze replaced Ismaiel.
Numerous handling errors and repeated infringements made the game a stop-start affair in the first half but both sides' backlines came more in to the game in the second half.
The Bulls began on the front foot and they were rewarded for their dominance when Strauss went over at the back of a well-set driving maul after the Stormers had given away a series of penalties. Handre Pollard made no mistake with the conversion, giving the Bulls the ideal start with a 7-0 lead after five minutes.
The Stormers got on the board in the 14th minute with a Willemse penalty from their first foray in to Bulls territory after Bulls lock Jason Jenkins was penalised for not releasing the tackler.
The Bulls continued to put a lot of pressure on the Stormers, however, and Damian de Allende bore the brunt of the Stormers' repeated infringements and when he was sin-binned for hands in the ruck.
From the resulting penalty, the Bulls stuck it in the corner and went to the lineout where they set up the driving maul with Strauss walking over at the rear to dot down for his second. This time, Pollard failed to add the extras.
The Bulls scored next after a beautiful burst from Pollard before the fly-half produced a classy one-handed offload to set Johnny Kotze clear on his way over the whitewash out on the right wing. Pollard converted to take the hosts in to a 19-6 lead with ten minutes to go before half-time.
The Stormers hit back, however. It all came from a penalty that went against Bulls prop Pierre Schoeman for illegal binding at the scrum. From the lineout, the visitors made good metres with the rolling maul before Kobus van Dyk burst over after a series of powerful carries from the forwards down the blindside.
With seconds to go before the half-time hooter, the Stormers put together a slick move with Kobus van Dyk getting the offload away in midfield for De Allende who conjured up a magnificent try, weighting his kick ahead perfectly, outsprinting Springbok full-back Warrick Gelant to gather and dot down. Willemse's conversion saw the visitors trailing by just one at 19-18 as Marius van der Westhuizen blew his whistle for half-time.
Former Springbok captain Strauss grabbed what will be a memorable hat-trick after just 46 minutes on the ocassion of becoming the most-capped South African Super Rugby player of all time when he gleefully accepted a Stormers overthrow at the lineout on their own five-metre line.
But the Stormers just wouldn't go away and were well and truly back in it when Siya Kolisi dotted down in the 67th minute. Dillyn Leyds started the counter-attack from inside his own half before a clever blindside break saw Rhule playing the double skip pass for Kolisi, who produced a clinical finish, turning his back to the oncoming traffic as he slid over keeping his legs just within the field of play.
However, the Bulls seemed to have quelled any hopes of a Stormers comeback when flanker Roelof Smit got away a miraculous offload to set up Jesse Kriel as Pollard converted to restore the 10-point buffer.
And that's how it stayed as the Bulls broke a four-match losing streak to claim just their second win of the season.
Tries: Strauss 3, Kotze, Kriel
Cons: Pollard 4
Tries: De Klerk, De Allende, Kolisi
Pens: Willemse 2
Bulls: 15 Warrick Gelant, 14 Johnny Kotze, 13 Jesse Kriel, 12 Burger Odendaal (c), 11 Divan Rossouw, 10 Handre Pollard, 9 Ivan van Zyl, 8 Hanro Liebenberg, 7 Thembelani Bholi, 6 Marco van Staden, 5 Jason Jenkins, 4 Hendre Stassen, 3 Trevor Nyakane, 2 Adriaan Strauss, 1 Pierre Schoeman
Replacements: 16 Jaco Visagie, 17 Frans van Wy, 18 Lizo Gqoboka, 19 Hendre Stassen, 20 Roelof Smit, 21 Embrose Papier, 22 Manie Libbok, 23 Duncan Matthews
Stormers: 15 SP Marais, 14 Dillyn Leyds, 13 EW Viljoen, 12 Damian De Allende, 11 Raymond Rhule, 10 Damian Willemse, 9 Justin Phillips, 8 Nizaam Carr, 7 Cobus Wiese, 6 Siya Kolisi (c), 5 Pieter-Steph du Toit, 4 Jan de Klerk, 3 Wilco Louw, 2 Ramone Samuels, 1 Steven Kitshoff
Replacements: 16 Scarra Ntubeni, 17 JC Janse van Rensburg, 18 Carlu Sadie, 19 Chris van Zyl, 20 Kobus van Dyk, 21 Sikhumbuzo Notshe, 22 Jano Vermaak, 23 Craig Barry
Referee: Marius van der Westhuizen (South Africa)
Assistant referees: AJ Jacobs (South Africa), Cwengile Jadezweni (South Africa)
TMO: Willie Vos (South Africa)