Hugo scored twice in the first half as the Cheetahs opened up a handy 14-3 lead at half-time.
After the break, Bulls coach Nollis Marais made a number of substitutions, which helped inject energy into their game, and there was some reward when Tian Schoeman went over for a try.
However, after a number of scrum infringements, the Cheetahs were then awarded two penalty tries by referee Jaco Peyper, which not only sealed the result, but gave the Bulls coaches an obvious point of concern ahead of the Super Rugby season.
The Bulls will open their 2016 Super Rugby campaign against the Stormers on Saturday, February 27 at Newlands, while the Cheetahs kick off their season against the Jaguares the day before in Bloemfontein.
Tries: Tian Schoeman
Tries: Reniel Hugo (2), penalty try (2)
Conversions: Niel Marais (4)
15 Divan Rossouw, 14 Kefentse Mahlo, 13 Dries Swanepoel, 12 Dan Kriel, 11 Jade Stighling, 10 Tian Schoeman, 9 Piet van Zyl, 8 Hanro Liebenberg, 7 Nicolaas Janse van Rensburg, 6 Freddy Ngoza, 5 Marvin Orie, 4 Jason Jenkins, 3 Werner Kruger, 2 Callie Visagie, 1 Lizo Gqoboka
Jaco Visagie, 17 Pierre Schoeman, 18 Nqoba Mxoli, 19 Irne Herbst, 20 Riekert Hattingh, 21 Ivan van Zyl, 22 Francois Brummer, 23 JT Jackson, 24 Jamba Ulengo
Labuschagne, 14 Ruan van Rensburg, 13 Reinhardt Erwee, 12 Michael van der Spuy, 11 Clayton Blommetjies, 10 Niel Marais, 9 Tian Meyer, 8 Henco Venter, 7 Tienie Burger, 6 Paul Schoeman, 5 Reniel Hugo (captain), 4 Armandt Koster, Luan de Bruin, 2 Jacques du Toit, 1 Danie Mienie.