The Cheetahs produced a stunning second-half effort to beat the Pumas in their thrilling Currie Cup encounter at Mbombela Stadium in Nelspruit.
The Cheetahs won 35-31 as both sides scored five tries each.
The Bloemfontein-franchise remain in fifth place on the table but the four log points edges them closer to the Lions, who occupy the last semi-final place.
It was the home team that started the scoring when hooker Simon Westraadt went over after a driving maul.
William Small-Smith levelled the score when he went over in the corner after 27 minutes and Frans Steyn gave his team the lead with the conversion.
The Pumas though regained the lead before the halftime break when lock Le Roux Roets bulldozed his way over the line over a sustained period of pressure.
Daniel Maartins extended the Pumas' after the flanker dived over following a maul as his team lead 17-7 at that stage.
The visitors hit back as flanker Andisa Ntsila scored two tries within 10 minutes of each other, both converted by Steyn to give his team a 21-17 advantage.
The home team suffered a blow when eighth man Willie Engelbrecht was shown a yellow card, and 10 minutes in the sin bin, in the 61st minute.
The Cheetahs took full advantage of being a man to the good when replacement hooker Louis van der Westhuizen went over following another maul try in the wet conditions.
Engelbrecht redeemed himself somewhat when he returned from the sin bin and scored with six minutes remaining to make the score 28-24 to the visitors.
Replacement back Tian Meyer sealed victory for the Free State side when scored a five-pointer in the 77th minute, Steyn converted to give his team an unassailable 35-24 lead.
The Pumas scored a consolation try through Abraham le Roux after the hooter and Ginter Smuts converted but they fell to a four-point defeat.
Tries: Simon Westraadt, Le Roux Roets (2), Daniel Maartens, Willie Engelbrecht
Conversions: Devon Williams, Ginter Smuts (2)
Tries: William Small-Smith, Andisa Ntsila (2), Louis van der Westhuizen, Tian Meyer
Conversions: Frans Steyn (5)
15 Tapiwa Mafura, 14 Etienne Taljaard, 13 Erich Cronje, 12 Ali Mgijima, 11 Luther Obi, 10 Devon Williams, 9 Chriswill September, 8 Willie Engelbrecht, 7 Phumzile Maqondwana, 6 Daniel Maartins, 5 Pieter Jansen van Vuuren (captain), 4 Le Roux Roets, 3 Ignatius Prinsloo, 2 Simon Westraadt, 1 Morgan Naude.
Substitutes: 16 Abraham le Roux, 17 Dewalt Maritz, 18 Wikus Groenewald, 19 Darrien Landsberg, 20 Ewart Potgieter, 21 Ginter Smuts, 22 Tiaan Botes, 23 Wayne van der Bank
15 Clayton Blommetjies, 14 Duncan Saal, 13 Dries Swanepoel, 12 Howard Mnisi, 11 William Small-Smith, 10 Frans Steyn, 9 Ruben de Haas, 8 Jeandre Rudolph, 7 Aidon Davis, 6 Andisa Ntsila, 5 Reniel Hugo, 4 Carl Wagner (captain), 3 Khutha Mchunu, 2 Marnus van der Merwe, 1 Boan Venter
Substitutes: 16 Louis van der Westhuizen, 17 Cameron Dawson, 18 Erich de Jager, 19 Oupa Mohoje, 20 Chris Massyn, 21 Tian Meyer, 22 Reinhardt Fortuin, 23 Rhyno Smith
- TEAMtalk media