The Highlanders recovered from a slow start to beat the Bulls 27-20 in Dunedin on Friday.
Bjorn Basson's try 20 minutes in had put the Bulls firmly on control of the contest after a couple of early penalties but the Highlanders came back to level it before the break as Lima Sopoaga crossed the line.
Two tries in the space of 10 minutes early in the second half then flipped the game on its head with Gareth Evans and Malaki Fekitoa getting the scores.
The Bulls, who have seen their form dip as injuries have bitten, started strong and led just three minutes in after Jacques-Louis Potgieter slotted the first of two early penalties.
Sopoaga cut the deficit in the 19th minute with a penalty of his own, but the Bulls replied immediately as Piet van Zyl raced around the back of a scrum and chipped the ball forward for Basson to race over and score.
Potgieter converted to leave the Highlanders with plenty to do, but they turned the tide in the final 10 minutes of the first half and scored their first try when the ball broke loose after a line-out and Sapaogo scooped it up to score.
He kicked the conversion and three minutes later added a penalty which levelled the scores in the 36th minute.
The swing in favour of the Highlanders continued in the second half, and in the 45th minute Patrick Osborne made a break down the wing. The Highlanders quickly recycled the ball and Malaki Fekitoa teed up Evans to cross for the second try.
The Bulls then lost captain Flip van der Merwe to an arm injury and quickly found themselves further behind after more good work from Sopoaga helped Fekitoa break through the defence for another try.
Sapoaga nailed a third conversion to put his side firmly on top.
The Bulls were struggling to build any momentum and the Highlanders were close to another try in the 66th minute when Fekitoa burst through the defence but was stopped short on the line.
There was a late consolation for the Bulls as Marcel van der Merwe drove over the line in the last minute, but it could not mask a disappointing display.