A late try from centre Malakai Fekitoa helped the Highlanders edge the Bulls 17-10 at a wet Loftus Versfeld in Pretoria.
A cut-up pitch after heavy pre-match rain meant there was little running rugby and the Round 12 match developed into a titanic struggle between two mud-covered packs.
Smarting from a record 38-point home loss in Super Rugby last weekend to another New Zealand outfit, leaders Crusaders, Bulls had chances to win this time.
Highlanders were under the cosh after winger Waisake Naholo was red-carded on 64 minutes for a shoulder charge into the face of Bulls centre Burger Odendaal.
Bulls skipper and No.8 Hanro Liebenberg later opted not to kick a penalty in front of the posts, preferring a scrum with his team having the upper hand in that phase.
But the scrum failed to yield points and when the home side finally did score a try through substitute prop Pierre Schoeman, it was disallowed.
Not only were Bulls deprived of a probable seven points as the ball was dotted down between the posts, they were also reduced to 14 men.
The referee spotted another reckless shoulder charge in the build-up and, after referring the incident to the television match official, red-carded lock Rudolph Snyman.
With both teams reduced to 14 men for the last eight minutes, Highlanders pressed for match-winning points and they came off Fekitoa.
He broke from midfield, evaded several tackles and went over between the posts, leaving fly-alf Marty Banks with a simple conversion to close the scoring.
"The weather reminded me of the south island in New Zealand," joked Highlanders skipper and hooker Ash Dixon. "It was tough trying to play footie out there.
"Handling was difficult as the ball was like a bar of soap, but we believe in each other and that is what keeps the victories coming."
Liebenberg, deputising as captain for injured hooker Adriaan Strauss, said the red-carding of Snyman cost his team a chance of winning.
"That was the turning point of the match, but our performance offered hope for the future."
After trailing to an early Bulls penalty, Highlanders led 10-3 at half-time only for the hosts to level on 48 minutes through a converted try.
Victory kept Highlanders in line for a quarterfinals place, five points ahead of challengers the Blues of New Zealand.
Bulls are 11 points adrift of Africa One leaders and fellow South African side Western Stormers with five rounds remaining.
Fullback Matt Faddes and Fekitoa scored tries for Highlanders which temporary replacement Fletcher Smith and Banks converted, Smith also slotted a penalty.
Fullback Warrick Gelant was Bulls' try scorer and flyhalf Tian Schoeman kicked the conversion and a penalty.
Man of the match: It was not the best in terms of quality. One player was a cut above the rest with his tactical play and Aaron Smith walks away with the accolade.
Con: T Schoeman
Pen: T Schoeman
Tries: Faddes, Fekitoa
Cons: F Smith, Banks
Pen: F Smith
Red cards: Waisake Naholo (Highlanders, 64 - foul play, shoulder to the head), Rudolph Snyman (Bulls. 72 - foul play, shoulder to the head)
Bulls: 15 Warrick Gelant, 14 Jade Stighling, 13 Jesse Kriel, 12 Burger Odendaal, 11 Jamba Ulengo, 10 Tian Schoeman, 9 Piet van Zyl, 8 Hanro Liebenberg (captain), 7 Jannes Kirsten, 6 Ruan Steenkamp, 5 Rudolph Snyman, 4 Jason Jenkins, 3 Trevor Nyakane, 2 Jaco Visagie, 1 Lizo Gqoboka.
Replacements: 16 Edgar Marutlulle, 17 Pierre Schoeman, 18 Coenraad van Vuuren, 19 Lodewyk de Jager, 20 Nick de Jager, 21 Rudy Paige, 22 Tony Jantjies, 23 Jan Serfontein.
Highlanders: 15 Matt Faddes, 14 Waisake Naholo, 13 Malakai Fekitoa, 12 Richard Buckman, 11 Patrick Osborne, 10 Marty Banks, 9 Aaron Smith, 8 Gareth Evans, 7 Dillon Hunt, 6 Elliot Dixon, 5 Tom Franklin, 4 Alex Ainley, 3 Siosuia Halanukonuka, 2 Ash Dixon (captain), 1 Aki Seiuli.
Replacements: 16 Greg Pleasants-Tate, 17 Daniel Lienert-Brown, 18 Siate Tokolahi, 19 Joe Wheeler, 20 Jackson Hemopo, 21 Kayne Hammington, 22 Fletcher Smith, 23 Teihorangi Walden.
Referee: Jaco van Heerden (South Africa)
Assistant referees: Egon Seconds (South Africa), Cwengile Jadezweni (South Africa)
TMO: Johan Greeff (South Africa)
For more rugby news, visit Rugby365.com