Stade Français clung on to win 21-19 on the road at Grenoble on Sunday in the Top 14, with all of their points coming from penalties.
France fly-half Jules Plisson finished with a 100 percent record off the kicking tee for the defending champions, landing seven penalties.
Grenoble's Jonathan Wisniewski opened the scoring with a penalty in the fifth minute, with Plisson then adding his first points after the home side collapsed the scrum.
Wisniewski's next effort from 48 metres restored Grenoble's lead and that was enhanced by a try from Peter Kimlin.
The powerful second row drove over after Grenoble attacking through their rolling maul, with Stade down to 14 men following the sin-binning of lock Alexandre Flanquart.
Wisniewski converted, but two Plisson penalties meant that Grenoble's lead was only two points by half-time, leading 11-9.
Plisson's next effort from 48 metres out put the visitors ahead for the first time, with the two fly-halves then trading penalties.
His sixth three-pointer, after Sona Taumalolo was yellow carded for a late hit on Hugo Bonneval, followed by a seventh sucessful strike in the 71st minute meant that Stade were ahead by a converted try going into the final ten minutes.
Grenoble replacement hooker Anthony Hegarty's try set up the prospect of a dramatic finish, but Wisniewski crucially missed the conversion, giving Stade Français a two-point advantage in the closing stages as they ground out a valuable away triumph.
Tries: Kimlin, Hegarty
Pens: Wisniewski 3
Yellow Card: Taumalolo
For Stade Français:
Pens: Plisson 7
Yellow Card: Flanquart
Grenoble: 15 Gio Aplon, 14 Lucas Dupont, 13 Fabrice Estebanez, 12 Nigel Hunt, 11 Daniel Kilioni, 10 Jonathan Wisniewski, 9 Charl McLeod, 8 Rory Grice, 7 Mahamadou Diaby, 6 Peter Kimlin, 5 Hendrik Roodt, 4 Ben Hand, 3 Dayna Edwards, 2 Arnaud Heguy, 1 Fabien Barcella
Replacements: 16 Anthony Hegarty, 17 Sona Taumalolo, 18 Jonathan Best, 19 Steven Setephano, 20 Christophe Loustalot, 21 Gilles Bosch, 22 Xavier Mignot, 23 Roussouw de Klerk
Stade Français: 15 Hugo Bonneval, 14 Waisea Nayacalevu, 13 Geoffrey Doumayrou, 12 Jonathan Danty, 11 Jeremy Sinzelle, 10 Jules Plisson, 9 Julien Tomas, 8 Jono Ross, 7 Raphaël Lakafia, 6 Mathieu Ugena, 5 Pascal Papé, 4 Alexandre Flanquart, 3 Rabah Slimani, 2 Laurent Sempere, 1 Heinke van der Merwe
Replacements: 16 Laurent Panis, 17 Zak Taulafo, 18 Paul Gabrillagues, 19 Willem Alberts, 20 Clement Daguin, 21 Morné Steyn, 22 Djibril Camara, 23 Paul Alo-Emile
Referee: Pascal Gauzère