World number one Novak Djokovic's bid to hold all four Grand Slam titles at the same time was ended by Dominic Thiem in the French Open semi-final.
Thiem beat the 32-year-old 6-2 3-6 7-5 5-7 7-5 in the semi-final, which began on Friday but was interrupted by bad weather three times.
The fourth seed will face 11-time champion Rafael Nadal on Sunday, a repeat of last year's final.
Thiem, 25, is the first Austrian player to reach a second Grand Slam final.
"It was an unbelievable day for me," said Thiem, who had never beaten a world number one at a major before.