A try in the last minute of the game gave the Pumas their first win of the Currie Cup season as they edged the Griquas 34-31 in Kimberley.
Replacement Carl Bezuidenhout, who came on seven minutes before the end, went over shortly before the final whistle, and converted his own try to secure the hosts a much-needed win.
Flanker Marnus Schoeman got the hosts off to a good start with a try in the 16th minute, converted by fly-half Earl Rose.
Fighting to stay in touch, however, the Pumas hit back with three penalties by their fly-half Ricardo Croy.
Rose missed a penalty kick in the dying stages of the first half, giving away an opportunity for Griquas to take a lead into the half-time break, with the Pumas heading into the tunnel holding a 9-7 advantage.
Rose regained the lead for the hosts, however, almost immediately after they returned, with his first successful penalty.
Five minutes after temporarily replacing Croy, who went off to the blood bin, Carl Bezuidenhout added a three-pointer for the visitors, who again took the advantage.
Returning to the field, Croy went over and converted his own try to give the Pumas a nine-point gap with half an hour left.
Griquas stayed in touch, though, with Schoeman scoring his brace two minutes later, and Rudi Vogt adding the conversion to bring the hosts within three points.
Both sides pushed forward in the last 30 minutes, with Hendrik van der Nest and Marthinus van der Westhuizen dotting down for the Pumas before Rocco Jansen and Riaan Viljoen struck back for the home side.
Tries: Schoeman 2, Jansen, Viljoen
Cons: Rose, Vogt 2
Tries: Croy, van der Nest, van der Westhuizen, Bezuidenhout
Pens: Bezuidenhout, Croy 3
Griquas: 15 Riaan Viljoen, 14 Dusty Noble, 13 Jean Stemmet, 12 Hanno Coetzee, 11 Rocco Jansen, 10 Earl Rose, 9 Sarel Pretorius, 8 Jonathan Mokuena (c), 7 Davon Raubenheimer, 6 Marnus Schoeman, 5 Jaco Nepgen, 4 Frikkie Spies, 3 Lourens Adriaanse, 2 Ryno Barnes, 1 Ivann Espag.
Replacements: 16 Simon Westraadt, 17 Steph Roberts, 18 Leon Karemaker, 19 Justin Downey, 20 Marnus Hugo, 21 Matthew Rosslee, 22 Rudi Vogt.
Pumas: 15 MJ Mentz, 14 Johan Jackson, 13 JW Jonker, 12 Siviwe Magaba, 11 Wilhelm Looch, 10 Ricardo Croy, 9 Hendrik van der Nest, 8 Christo le Roux, 7 Jaco Bouwer, 6 Corne Steenkamp (captain), 5 Marius Coetzer, 4 Rudi Matthee, 3 Brett Nel, 2 Marthinus van der Westhuizen, 1 Dawie Steyn
Replacements: 16 Torsten van Jaarsveld, 17 Michael de Neuilly-Rice, 18 Willem Serfontein, 19 JP Mostert, 20 Carl Bezuidenhout, 21 Dawid Pretorius, 22 Deon Scholtz.
Referee: Jaco Peyper