Rafael Nadal gained revenge on Diego Schwartzman to reach his 13th French Open final.
Schwartzman had managed his first victory over Nadal in 10 meetings at the Italian Open in Rome last month but a repeat never looked on the cards in the Spaniard's fortress.
Nadal's 6-3 6-3 7-6 (0) victory made it 99 wins and only two defeats at Roland Garros and he will challenge for a 13th title on Sunday.
Victory would give him a 20th grand slam crown, drawing him level with Roger Federer at the top of the all-time list, and few would bet against him.He was relentless for two and a half sets but a faltering finish will be a cause for optimism for whoever he faces in the final on Sunday.
From 4-2, Nadal's grip on the match loosened and he had to save three break points at 5-5 before clinching the match on a tie-break to ensure he reached the final in Paris without dropping a set for the sixth time.
The crux of the match in many ways was a first set that averaged more than seven minutes a game. Nadal was largely conservative, using extra height on his shots to counteract the lack of spin caused by the cool, damp conditions.
Schwartzman had four break points but was only able to convert one while Nadal struck on both of his two chances, wearing the Argentine down with his consistency and going to his attacking arsenal only when necessary.
Schwartzman lacked the attacking intensity he had shown in Rome, which was perhaps a legacy of his five-hour victory over Dominic Thiem in the quarter-finals.
He looked down and out at 1-3 in the third set but dug in admirably, breaking Nadal twice in succession to pull back to 4-4.
Now it was Schwartzman dictating much of the play but, with the Spaniard's hold for 6-5, the door was closed.