World number one Novak Djokovic overcame early physical struggles to beat Pablo Carreno Busta and reach the French Open semi-finals.
The Serb arrived on court with tape on his neck, repeatedly massaged his left biceps and grimaced on his way to losing the first set, but went on to win 4-6 6-2 6-3 6-4.
It was a rematch of September's US Open encounter where Djokovic was defaulted for hitting a line judge with a ball.
Djokovic faces Stefanos Tsitsipas next.
"I definitely didn't feel great coming into the court today," Djokovic, 33, told a news conference.
"A few things happened in the warm-up. I had to deal with those physical issues coming on to the court. As the match went on, I felt better, didn't feel as much pain.
"But, you know, I don't want to take away anything from his good performance. Especially for a set and a half he was the better player, dictating the play."
Djokovic out of sorts for long spells
It was just 31 days since the pair met in the US Open fourth round and the Serb was disqualified after taking an angry swipe at a ball and sending it accidentally into the throat of a line judge.
This time the focus was not on the tennis either.
There were times in the first set when Djokovic looked ready to give up - at one point he signalled to his team with a gesture across his throat that suggested he was done with the match and he was clearly uncomfortable.
In between points he pummelled himself on the top of his arm, stretching his arms or whacking his thighs with his racquet, also receiving visits from the physio at the changeovers.
Carreno Busta took full advantage, breaking twice to take the opening set as Djokovic looked increasingly dejected.
After more physio, a swig of a drink sent down from his team and some dates, Djokovic's level improved as he took the second set in efficient fashion.
"I didn't have much energy really happening in my legs or movement. It took me about set and a half to really get comfortable and start really playing the way I should," he said.
"I had some neck issues and some shoulder issues. I'll just say that. I mean, I don't want to get really too much into it. Obviously I'm still in the tournament, so I don't want to reveal too much."
Djokovic looked like he was going to run away with the third when he went 3-0 up but let the 17th seed back in when his first-serve percentages dropped again and the sloppy errors crept back in, allowing Carreno Busta to break back.
There were glimpses of brilliance from Djokovic, who had until now not dropped a set and only lost 25 games in four rounds, and he let out a deafening roar when Carreno Busta swiped a forehand long to give away a break that left the Serb serving for the third set.
He sealed it with an ace and went on to get a break in the seventh game of the fourth, which proved decisive.
Carreno Busta handed Djokovic a match point that the Serb converted after a beautiful final point where he worked his opponent around the whole court before unleashing a stunning forehand cross-court winner.
Victory puts him into his 10th Roland Garros semi-final and the last four of a Grand Slam for the 38th time.
It also keeps Djokovic on course for a blockbuster final against 12-time champion Rafael Nadal, who is chasing a 20th Grand Slam title while the Serb seeks an 18th.
Djokovic, the champion here in 2016, is seeking to become the first man in the Open era to win all four Grand Slams twice.