The Bulls scored four tries on their way to a 37-20 victory over a brave Lions side which earned them a spot in the Super Rugby play-offs.
The bonus-point victory means that the Bulls will travel to Christchurch next week to face the Crusaders, whilst the Sharks will head to Brisbane where they will face the defending champion Reds.
The visitors played with plenty of heart in their last game of the season, and were level with the Bulls at half-time, but a comprehensive second-half performance secured victory for the home team.
The match started at a frantic pace as both teams gave the ball width and looked to make a statement on attack.
The Lions were rewarded for their endeavour by drawing first blood through an Elton Jantjies penalty but the Bulls replied soon afterwards with one of their own from Morne Steyn.
The three-time champions flew into the collisions at pace as they sought to impose their considerable physicality on the Lions, and as a result they began to dominate the gainline battle.
The opening try came as the result of Bulls pressure and some tactical naivety from Jantjies who slung a wide pass out only for it to be intercepted by Akona Ndungane who went over for a simple try to put his team 10-3 ahead.
The blue wave continued to hammer away at the Lions' defence, but their momentum was halted when it came time to pack down and scrum, with the Lions putting them under some serious pressure at the set-piece.
Jantjies kicked his second penalty after Dewald Potgieter failed to roll away in the tackle, but the Bulls hit back by marching into the 22 and engineering Bjorn Basson's tenth try of the season.
After some strong running was stopped just short of the line the Bulls managed to set a more solid platform at the scrum and Francois Hougaard ran a good line to put Basson over for the try next to the poles which extended their lead to 17-6.
The Lions were not about to roll over and they underlined that fact by advancing into the Bulls 22 where another powerful scrum gave scrumhalf Michael Bondesio the space he needed to stretch and place the ball on the tryline under the poles.
Steyn added another penalty shortly afterwards, but the Lions were not done there and after an exciting break from Bondesion put them in good attacking position they formed a driving maul and it was their skipper Joshua Strauss who crashed over for the try in the corner.
The touchline conversion from Jantjies took the teams into the half-time break level at 20-20, following an action-packed 40 minutes which included encouraging signs for both sides.
The Bulls got their noses in front early in the second half when Hougaard picked up the ball at the base of a ruck and raced away from the Lions defenders who had been spread thin by a weaving run from Bulls outside centre JJ Engelbrecht.
The try put the Bulls 27-20 ahead and the bonus point was secured soon afterwards when Jacques Potgieter capped off another period of pressure by taking a neat offload from Dean Greyling and diving over for the try which gave his team a commanding 34-20 advantage.
The Lions, who were scoreless in the second half, were desperate to get back into the game and went off their feet at a ruck in an attempt to win the ball on the ground, so Steyn punished them further by kicking his third penalty.
The Lions threw everything at the Bulls in the final stages, but the Pretoria side's defence held up well as they absorbed the pressure and managed to hold on for a victory that was built on a determined effort in the second half.
Man of the match: Francois Hougaard was a constant threat and mixed up his game well but the stand-out player was Juandre Kruger who ruled the line-out and made some telling contributions in open play.
For the Bulls:
Tries: Ndungane, Basson, Hougaard, J Potgieter
Cons: Steyn 4
Pens: Steyn 3
For the Lions:
Tries: Bondesio, Strauss
Cons: Jantjies 2
Pens: Jantjies 2
Yellow card: Dean Greyling (Foul play, 78 mins)