The Cheetahs bounced back from their Super Rugby opening round defeat to inflict a second consecutive defeat on the Bulls, in a 34-28 win.
A Rohan Janse van Rensburg try three minutes from time snatched victory for the Lions against the Cheetahs last week but they wouldn't fall to a similar fate as four tries before the break gave them a comfortable 28-14 lead at half-time.
The Bulls fought back with two tries closing the margin to three points going into the final 10 minutes, but the Cheetahs added a penalty to seal the win.
A pulsating opening quarter hour, saw the Cheetahs lead 14-5 with Fred Zeilinga converting tries from Clinton Swart and Teboho Mohoje with a try from Jason Jenkins of the Bulls sandwiched in between.
Handre Pollard, who still does not look back to his best, closed the gap to three points with two penalties before Justin Basson added a third try for the Cheetahs on the half hour.
Zeilinga converted and when Mohoje went over three minutes from half-time, his conversion kicked the home side to a 28-11 lead. Pollard closed the gap with a penalty on half-time.
Zeilinga restored the Cheetahs 17-point lead with a half hour remaining before the Bulls fought back. Piet van Zyl and Jamba Ulengo grabbed a try apiece in a four-minutes spell before the 70th minute, with Tiaan Schoeman converting both.
Leading 31-28, the Cheetahs kicked a further penalty from Zeilinga with six minutes remaining to seal victory.