Two tries in as many minutes midway through the first-half earned the South Africans a lead they were never to lose and set them on course for a second win over Welsh opposition this season, having comfortably beaten Scarlets in their opening match.
The home side were first onto the attack and tested the Bulls defence with a near 20 phase effort on and around the 22. The South African's stayed strong and then went on to break the deadlock in the 11th minute with a try out of nothing.
It began with centre Stedman Gans getting the ball free out of contact, enabling midfield partner David Kriel to chip ahead where scrum-half Embrose Papier picked up and raced over.
Sebastian de Klerk then picked off an attempted pass 60 metres out by Tinus de Beer and raced in unopposed under the posts for a second Bulls score.
Wales World Cup wing Mason Grady got Cardiff back into the game when he was worked over for a try in the left corner midway through the half.
Cardiff head coach Matt Sherratt had asked his backs to be braver than they had been in the defeat against the Scarlets the previous weekend, and it was De Beer who orchestrated a wrap around move that eventually created the space for Grady's score.
The Bulls introduced number eight Cameron Hanekom at the start of the second half, giving on-looking Wales head coach Warren Gatland a sneak peek, and started the second half with a bang.
They thundered into the home 22 and picked up a penalty that Chris Smith put over to extend their lead three minutes after the re-start.
Moments later, his opposite number Rey Lee-Lo picked up at the base of a ruck on the Bulls 22 and simply sprinted through a giant defensive hole to score at try under the posts.
With De Beer's simple conversion, the gap was cut to three points with 26 minutes to play but Smith's 61st-minute penalty stretched the lead and Bulls held on.