The win moved the Pretoria-based side up to second in the overall table, a position that guarantees a place in the last four.
The Bulls also have a game in hand over the leaders, New Zealand's Chiefs.
The home team dominated from the start and notched their first try inside three minutes through JJ Engelbrecht.
Further touchdowns from Akona Ndungane and Pierre Spies put them out of sight before Jano Vermaak grabbed a bonus-point try late on.
The Highlanders were let down by poor discipline with Maritino Nemani and Chris King sent to the sin bin in the second half, meaning they played for 20 minutes with 14 men.
Their consolation tries came from Japanese scrumhalf Fumiaki Tanaka and centre Tamati Ellison late in the game.
The Bulls went ahead when a long pass from scrumhalf Francois Hougaard released Engelbrecht.
The Highlanders stayed in the hunt with two penalties from Colin Slade but the hosts then took control.
The penalty count was high for both sides, the difference being that the Highlanders gave theirs away within kicking range for Morne Steyn.
Ndungane's try came when the Bulls broke from their own 22 and Spies dived over after halftime.
It looked like the bonus-point try might not come as the Bulls became disjointed in the final 30 minutes but another solid driving maul saw them edge towards the line before substitute Vermaak showed good pace to score in the corner.
Cheetahs scrum half Piet van Zyl scored two tries in the opening 20 minutes to lay the platform for a 27-13 win over Queensland Reds.
The victory put the Cheetahs, who suffered a surprise home reversal last week, back on course for a berth in the playoffs as they moved into seventh place in the standings.
The Reds remain in the playoff places despite a frustrating match which they dominated but little fell for them.
Van Zyl, given a rare run in the starting line-up, used his considerable speed to catch the Reds early as he darted away for a try in the first five minutes.
Another electric burst of pace saw him emerge from behind a maul to cut through the middle and score again in the 24th minute.
Fly half Elgar Watts proved effective with the boot as he missed just one of seven kicks at the Free State Stadium.
It was Watts's first full match for the Cheetahs, the fourth fly half they have been forced to use in an injury-plagued season. He slotted over five penalties and a conversion.
Replacement winger Ben Lucas scored a late try for the Reds but it proved little consolation.
"It was a disappointing night for us. We did all we didn't want to do - we didn't execute the last pass properly, we were very loose and we didn't get a chance to build pressure because were making too many mistakes," said Reds skipper James Horvill.
The Australian franchise crossed over the tryline twice only to be called back for forward passes and were held up on the line a further three times.
"It felt like we were defending all game but we showed great character. We didn't want to give up," said home captain Adriaan Strauss. "We were very good on defence and we scrambled well."
- Sports & Recreation
- Jano Vermaak
- Pierre Spies