The Highlanders had lost their two previous games and were in danger of losing touch with the New Zealand conference leaders the Chiefs (45) and second-placed Crusaders (37). The Highlanders moved to 39 points with the win.
The Crusaders play the Auckland Blues later on Saturday, while the Chiefs have a bye and will receive four points at the end of the round.
The Bulls had been at the top of the table on 46 points and could now be over-hauled by the Stormers (45) in the South African conference later on Saturday when they face the Waratahs.
"Pretty big game for us, we'd lost two on the trot and the way the competition is we're still in the hunt," Highlanders captain Jamie Mackintosh said. "It was a pretty physical game and fast."
The Bulls had taken a 6-3 lead into the halftime break, Morne Steyn kicking two penalties while Mike Delany replying with one for the home side.
The match was played between the 22-metre areas, with the South Africans content to use Steyn's tactical kicking to get them down field.
Delany levelled the score early in the second half with his second penalty as the Highlanders put immense pressure on the Bulls defensive line.
Prop Dean Greyling was subsequently sinbinned in the 56th minute after referee Ian Smith had warned them for constant infringing.
Hoeata, who had one try disallowed by the television match official, crossed from the ensuing attacking scrum as the home side patiently built phases and committed defenders before the 2011 All Blacks smashed over.
Delany added the conversion and then a penalty shortly afterwards to give the Highlanders a 10-point lead with little over 10 minutes remaining.
The Bulls, however, finally got some field position and used their massive forwards to punch over the advantage line before replacement hooker Willie Wepener crashed over to bring his side to 16-11.
They were not able to grab victory, however, as the desperate Highlanders defence held them out and turned the ball over as the hooter sounded.
"I think we made too many mistakes and the Highlanders capitalised on that," Bulls captain Pierre Spies said.
Teams:Highlanders: 15. Ben R Smith, 14. Siale Piutau, 13. Tamati Ellison, 12. Phil Burleigh, 11. Hosea Gear, 10. Mike Delany, 9. Aaron Smith, 8. Nasi Manu, 7. Tim Boys, 6. Adam Thomson, 5. Nick Crosswell, 4. Jarrad Hoeata, 3. Ma'afu Fia, 2. Jason Rutledge, 1. Jamie MacKintosh (captain)
Substitutes: 16. Andrew Hore, 17. Bronson Murray, 18. Hoani MacDonald, 19. Scott Fuglistaller, 20. Jimmy Cowan, 21. Chris Noakes, 22. Kenny Lynn
Bulls: 15. Zane Kirchner, 14. Akona Ndungane, 13. Johann Sadie, 12. Wynand Olivier, 11. Bjorn Basson, 10. Morné Steyn, 9. Francois Hougaard, 8. Pierre Spies (captain), 7. CJ Stander, 6. Dewald Potgieter, 5. Juandre Kruger, 4. Flip van der Merwe, 3. Werner Kruger, 2. Chiliboy Ralepelle, 1. Dean Greyling
Substitutes: 16. Willie Wepener, 17. Rayno Gerber, 18. Wilhelm Steenkamp, 19. Arno Botha, 20. Jano Vermaak, 21. Louis Fouche, 22. JJ Engelbrecht