The Cheetahs were their own worst enemies as they hosted Western Province in Bloemfontein in a Currie Cup crunch match.
The hosts gave away far too many penalties in the early going, and their ill-discipline allowed Western Province to build a buffer through the boot of Tim Swiel.
Cheetahs skipper Frans Steyn kept his team just about in touch with his prodigious boot.
Just before the break Jaco Coetzee went over after a five-metre lineout was secured by JD Schickerling.
Western Province took a 17-9 lead into the break.
In the second period Swiel stretched Western Province’s lead out to 14 points with a pair of penalties.
The Cheetahs came storming back as the game approached the hour mark with two quick tries.
Wilmar Arnoldi came up with the ball after the Cheetahs drove over from a lineout in the Western Province 22, with Steyn having opted to turn down a long shot at goal to set up the setpiece.
A little bit of Specmagic got the Cheetahs level moments later. Rosco Specman sprinting in from a lovely counterattacking move.
Steyn put the Cheetahs in front from the tee but shortly afterwards the Cheetahs poor discipline reared its head again as an off the ball shoulder charge from Clayton Blommetjies gifted Western Province a penalty which they used to set up a lineout. Province drove over with Bongi Mbonambi coming up with the ball setting up a grandstand finish.
With less than ten minutes to go Steyn put the Cheetahs back in front from the tee after a scrum penalty won on Western Province’s feed.
The Cheetahs looked like they might hold on until a late scrum was awarded to Western Province who ground through the hosts scrum and won a penalty which Swiel converted to give his side a 31-29 win.
Currie Cup teams: Western Province vs Cheetahs
Western Province: 15 Damian Willemse, 14 Sergeal Petersen, 13 Dan du Plessis, 12 Rikus Pretorius, 11 Angelo Davids, 10 Tim Swiel, 9 Herschel Jantjies, 8 Juarno Augustus, 7 Johan du Toit, 6 Jaco Coetzee, 5 David Meihuizen, 4 JD Schickerling, 3 Frans Malherbe, 2 Bongi Mbonambi, 1 Steven Kitshoff (captain). Replacements: 16 Scarra Ntubeni, 17 Kwenzo Blose, 18 Neethling Fouche, 19 Chris van Zyl, 20 Marcel Theunissen, 21 Paul de Wet, 22 Ruhan Nel, 23 Tristan Leyds, 24 Leon Lyons, 25 Chad Solomon, 26 Ben-Jason Dixon.
Cheetahs: 15 Clayton Blommetjies, 14 Rhyno Smith, 13 Dries Swanepoel, 12 Frans Steyn, 11 Rosko Specman, 10 Reinhardt Fortuin, 9 Ruben de Haas, 8 Jeandré Rudolph, 7 Oupa Mohoje, 6 Andisa Ntsila, 5 Reniel Hugo, 4 Carl Wegner (captain), 3 Khutha Mchunu, 2 Wilmar Arnoldi, 1 Boan Venter. Replacements: 16 Marnus van der Merwe, 17 Erich de Jager, 18 Conraad van Vuuren, 19 Victor Sekekete, 20 Chris Massyn, 21 George Cronje, 22 Howard Mnisi, 23 Tian Meyer.