It was far from clinical, but the Springboks carved out a much-needed 18-17 win against France in Paris on Saturday.
There were errors aplenty from both sides, and Handre Pollard struggled from the tee on his return to the starting line-up, but the win will be welcomed by under-fire Bok coach Allister Coetzee as he seeks to bring some respectability back to his tenure.
It is the second win the Boks have had in 11 away games under Coetzee, and it is his first win in the northern hemisphere at the fifth time of asking.
In the context of this week, it is also a small victory for the country after France was on Wednesday awarded the rights to host the 2023 World Cup at South Africa's expense.
It didn't take long to get the feeling that the Boks were going to enjoy a far better outing than they did a week ago against Ireland when they were smashed 38-3 in Dublin.
Playing like they had a point to prove, the Boks were out of the blocks quickly, running with purpose and intensity.
They had their first score of the game after just six minutes when Pollard, in is first start since the 2015 World Cup, played in Dillyn Leyds who did well to squirm his way over and bag his first Test try.
Pollard missed the conversion, but more pressure from the Boks saw them win a penalty that the flyhalf had no trouble knocking over on 17 minutes to give his side an 8-0 lead.
At that stage, the Boks were sitting pretty.
But when Malcolm Marx missed his jumper at a lineout on half-way, the French were allowed to counter and, almost out of nothing, flyhalf Anthony Belleau went over to get the hosts back in it.
The conversion was good from the No 10, and it was 8-7 to the Boks.
With both sides making mistakes, Pollard and Belleau then missed relatively routine penalties as the bright Bok start fizzled.
Pollard had an opportunity on the stroke of half time to extend the lead with a penalty from about 45m out, but he missed for the third time on the night as the sides went into the break separated by just a point.
The Boks turned down a shot at three points straight after the restart, opting to set up a lineout that came to nothing.
Instead, it was the French to draw first blood in the second half as Belleau kicked a penalty to put Les Bleus ahead for the first time in the match.
Pollard's woes from the tee continued when he missed another easy penalty, but he took his tally to two from six soon after with an opportunity that came from a French tackle without the ball.
That put the Boks 11-10 up, but the big talking point came just after the hour mark when Jesse Kriel scored South Africa's second try.
It looked like the pass from Eben Etzebeth had gone forward to Kriel, but after consulting the replays the match officials controversially decided that the ball had been dislodged from Etzebeth's hands.
The try stood, Pollard converted and the Boks were 18-10 ahead.
France made things interesting with a late try from substitute Francois Trinh-Duc, and with the conversion successful it set up a tense last couple of minutes with South Africa 18-17 ahead.
The Boks managed to look after the ball in the closing stages, though, holding out for what would prove to be the tightest of victories.
France 17 (7)
Tries: Anthony Belleau, Francois Trinh-Duc
SA 18 (8)
Tries: Dillyn Leyds, Jesse Kriel
Conversion: Handre Pollard
Penalties: Pollard (2)
15 Nans Ducuing, 14 Teddy Thomas, 13 Geoffrey Doumayrou, 12 Mathieu Bastareaud, 11 Yoann Huget, 10 Anthony Belleau, 9 Antoine Dupont, 8 Louis Picamoles, 7 Kevin Gourdon, 6 Judicael Cancoriet, 5 Paul Gabrillagues, 4 Sebastien Vahaamahina, 3 Rabah Slimani, 2 Guilhem Guirado (captain), 1 Jefferson Poirot
Substitutes: 16 Clement Maynadier, 17 Sebastien Taofifenua, 18 Daniel Kotze, 19 Paul Jedrasiak, 20 Anthony Jelonch, 21 Baptiste Serin, 22 Francois Trinh-Duc, 23 Damian Penaud
15 Andries Coetzee, 14 Dillyn Leyds, 13 Jesse Kriel, 12 Francois Venter, 11 Courtnall Skosan, 10 Handre Pollard, 9 Ross Cronje, 8 Duane Vermeulen, 7 Siya Kolisi, 6 Francois Louw, 5 Lood de Jager, 4 Eben Etzebeth (captain), 3 Wilco Louw 2 Malcolm Marx, 1 Tendai Mtawarira
Substitutes: 16 Bongi Mbonambi, 17 Steven Kitshoff, 18 Trevor Nyakane, 19 Franco Mostert, 20 Dan du Preez, 21 Rudy Paige, 22 Elton Jantjies, 23 Damian de Allende