Novak Djokovic tamed the huge serving of Milos Raonic to remain on course for a first French Open title.
The world number two won 7-5 7-6 (7-5) 6-4 to reach the semi-finals, where he will play Latvia's Ernests Gulbis.
It is a sixth Roland Garros and 22nd major semi-final for Djokovic.
A victory in Sunday's final would make the 27-year-old the eighth man in history to complete the career Grand Slam.
"I try to focus the intention only on the next match, so I don't think about eventual finals," said Djokovic. "I think about only Gulbis. He's been playing really well. He's confident.
"But again, I like my chances because I have had a couple of great weeks on the clay court,s from Rome to now the last 10 days here in Roland Garros.
"Two days off will definitely serve me well to recover, to work on some things on the practice courts, and then come back strong and prepare for the next challenge."
Raonic, 23, had looked like a potential stumbling block, having taken Djokovic to three tough sets in Rome recently.
The first Canadian man to reach a Grand Slam quarter-final in the Open era, the eighth seed's massive serve and improved all-round game made him a serious threat.
Both men knew opportunities were likely to be fleeting, and it was Djokovic who proved the more clinical.
A set point for the Serb went begging in game 10 but a brilliant backhand pass gave him another two games later, and a scrambling Raonic poked his volley wide.
The second set passed without a single break point for either man, and again it was Djokovic who raised his game in the tie-break, pushing his man out wide and drawing an error for 6-4.
Djokovic duly converted the second, on his own serve, and raised his fist to coach Boris Becker and the rest of his team in the stands.
Raonic fought back from 0-40 to deuce in the following game, but when two forehand errors gave Djokovic the break anyway, the contest was as good as his.
The six-time Grand Slam champion needed the security of a double break when he failed to serve out the match, but he sealed an impressive win at the second time of asking after two hours and 22 minutes.
"I think where he stood out today compared to Rome was he was playing a lot closer to the baseline," said Raonic.
"He was not letting me dictate as much as I was able to in Rome."