Springbok hopeful Warrick Gelant sparked the Vodacom Bulls to a 39-33 success over the Cell C Sharks in their South African Super Rugby derby at Loftus Versfeld on Saturday.

The fullback had scored a hat-trick of tries in a 40-10 win over the Sharks in Durban earlier in the season, and got on the scoresheet again as well as laying on another try for winger Johnny Kotze with a piece of brilliance.

The Bulls' other tries came from centre Jesse Kriel, flanker Roelof Smit and lock Lood de Jager as they largely controlled the game with enterprising backline play and solid set-pieces to keep their playoff hopes alive.

The Sharks led briefly in the second half and finished strongly to earn a losing bonus-point as they scored tries through fullback Curwin Bosch, and loose-forwards Jacques Vermeulen and Jean-Luc du Preez.

"It was a bit sloppy at times again," Bulls captain Burger Odendaal said at the post-match presentation. "But it's always good to see the forwards get their passing going and we also got some good metres on the outside."

The Bulls made the brighter start with two tries in the opening 15 minutes as Kriel's grubber kick sat up perfectly for Gelant to collect and score, before the centre spotted a gap in the Sharks backline and raced away to bag his side's second.

The return to the field of Bosch from a yellow card stabilised the Sharks and they began to take control of possession.

A superb offload from prop Tendai Mtawarira to Bosch put the fullback over for a score.

Smit restored the Bulls lead as he went over from close-range, but the home side were pegged back by first the loss of lock RG Snyman to a yellow card and seconds later a try for Vermeulen as the teams went to the break with the Bulls leading 22-17.

Sharks flyhalf Robert du Preez kicked two penalties to give the visitors the lead, but the Bulls regained control as a brilliant touch from Gelant sent Kotze over, before De Jager bulldozed his way over the line.

The Sharks kept on attacking and were rewarded with 10 minutes left when Jean-Luc du Preez crossed under the posts to deny the Bulls a try-scoring bonus-point.

"We had our chances, but errors came in and discipline cost us," Sharks captain Ruan Botha said. "We knew how they would play and put them under pressure, but we couldn’t back it up."