The home side were strong in defence, and overcame a lacklustre Bulls team.
Cheetahs lock Andries Ferreira scored in the first minute of the match. From the Cheetahs kickoff, the Bulls lost possession and Ferreira did the finishing to give the home side the early advantage.
The Bulls managed their first points in the 11th minute through a Louis Fouch penalty.
Riaan Smit replied for the Cheetahs with a penalty of his own before the Bulls scored their first try.
CJ Stander burst over in the corner after the visitors put together a couple of phases of attacking play. Fouch converted to put his side within three points of the hosts.
The Cheetahs had the best of the Bulls in the scrums, at least in the first half, and Smit kicked another penalty after the visitors were penalised after infringing.
The Cheetahs had the final say of the first period when eighth man Kabamba Floors dove over in the corner. His try came from good attacking play by scrum half Sarel Pretorius. Smit slotted the conversion to help his side to a comfortable lead of 23-10 at half time.
The Cheetahs continued their good defence, but ill discipline meant that Fouch could close the margin with his lengthy penalty kicks.
Smit kicked another penalty after the Bulls countered a Cheetahs attack illegally, to bring his tally to ten out of ten for the competition
The Bulls tried everything in the final minutes and were rewarded with a consolation try.
Stander went over for his second five pointer, but some poor decision making, combined with stellar defence by the Cheetahs, saw the Pretoria-based side head home without a single point for their efforts.
The scorers:
For Free State Cheetahs:
Tries: Ferreira, Floors
Cons: Smit 2
Pens: Smit 5, Scheepers
For Blue Bulls:
Tries: Stander 2
Con: Fouche
Pens: Fouche 2
Teams:
Free State Cheetahs: 15 Hennie Daniller, 14 Riaan Smit, 13 Robert Ebersohn (captain), 12 Barry Geel, 11 Raymond Rhule, 10 Sias Ebersohn, 9 Sarel Pretorius, 8 Kabamba Floors, 7 Pieter Labuschagne, 6 Frans Viljoen, 5 Izak van der Westhuizen, 4 Andries Ferreira, 3 Marcel van der Merwe, 2 Hercu Liebenberg, 1 Trevor Nyakane.
Replacements: 16 Elandré Huggett, 17 Schalk van Merwe, 18 Francois Uys, 19 Davon Raubenheimer, 20 Piet van Zyl, 21 Philip Snyman, 22 Nico Scheepers.
Blue Bulls: 15 Jürgen Visser, 14 Akona Ndungane, 13 Ulrich Beyers, 12 Francois Venter, 11 Clayton Blommetjies, 10 Louis Fouché, 9 Ruan Snyman, 8 CJ Stander, 7 Grant Hattingh, 6 Deon Stegmann, 5 Cornell Hess, 4 Wilhelm Steenkamp, 3 Frik Kirsten, 2 Willie Wepener, 1 Dawie Steyn.
Replacements: 16 Robbie Coetzee, 17 Werner Kruger, 18 Franco Mostert, 19 Warwick Tecklenburg, 20 Lohan Jacobs, 21 Lionel Cronjé, 22 Jan Serfontein.