The Cheetahs broke Pumas hearts and kept their Currie Cup semi-final hopes alive after escaping Witbank with a 29-23 win on Friday.
Trailing by six points and with just four minutes of the match remaining, Cheetahs pivot Sias Ebersohn converted his own try and replacement back Andries Strauss captured the all-important bonus point on full-time to pull the match out of the fire.
It was a game the men from Bloemfontein had to win, and were expected to win easily after thumping the same opponents 80-16 last time out.
However, this time around the Cheetahs were made to work overtime for a crucial victory that now puts them on course for a semi-final berth.
The Pumas were first on the board with a straight-forward penalty by pivot Carl Bezuidenhout but the Cheetahs hit back in the 28th minute through a try by flank Philip van der Walt.
The hosts responded with a try of their own after centre Dewald Pretorius used his big frame to bust over the chalk. Bezuidenhout converted and added another three points shortly before the break.
The Free Staters clawed their way back from a six-point (7-13) half-time decifit and took the lead for the second time in the match after prop Marcel van der Merwe stretched out for a try in the 45th minute.
Ebersohn added a penalty shortly afterwards, but Bezuidenhout narrowed the gap a few minutes later with three points for the home side.
Midway through the second period, Bezuidenhout attempted a dummy on the five metres out from Free State's line, and while the Cheetahs held him off, flanker Jaco Bouwer finished off nicely to dive over.
Bezuidenhout converted to put the hosts back in front and they looked likely to cause an upset.
With four minutes left, however, Boom Prinsloo offloaded to Ebersohn who dived over, and the fly-half converted his own try to steal back the lead.
Andries Strauss stormed across the try-line for the bonus point in the 80th minute, and while Riaan Smit failed to add the extras, the Cheetahs would have breathed a sigh of relief with one match left before the play-offs.
Tries: Pretorius, Bouwer
Cons: Bezuidenhout 2
Pens: Bezuidenhout 3
Tries: Van der Walt, Van der Merwe, S Ebersohn, Andries Strauss
Cons: S Ebersohn 3
Pen: S Ebersohn
Pumas: 15 MJ Mentz, 14 Wilhelm Loock, 13 JW Jonker, 12 Dewald Pretorius, 11 Johan Jackson, 10 Carl Bezuidenhout, 9 Shaun Venter, 8 Christo le Roux, 7 Jaco Bouwer, 6 Corné Steenkamp (c), 5 Eduan van der Walt, 4 JP Mostert, 3 Ashley Buys, 2 Pellow van der Westhuizen, 1 Dawie Steyn.
Replacements: 16 Brett Nel, 17 Michael de Neuilly-Rice, 18 RW Kember, 19 Nico Mostert, 20 Hendrik van der Nest, 21 Coenie van Wyk, 22 Siviwe Magaba.
Cheetahs: 15 Hennie Daniller, 14 Ryno Benjamin, 13 Robert Ebersohn, 12 Philip Snyman, 11 Cameron Jacobs, 10 Sias Ebersohn, 9 Piet van Zyl, 8 Ashley Johnson, 7 Philip van der Walt, 6 Pieter Labuschagne, 5 Izak van der Westhuizen, 4 Francois Uys, 3 WP Nel, 2 Adriaan Strauss (c), 1 Marcel van der Merwe.
Replacements: 16 Hercu Liebenberg, 17 Trevor Nyakane, 18 Wilhelm Steenkamp, 19 Boom Prinsloo, 20 Tewis de Bruyn, 21 Riaan Smit, 22 Andries Strauss.
Referee: Sindile Mayende