Dominic Thiem knocked favourite and 11-time champion Rafael Nadal out of the Barcelona Open with a stunning 6-4, 6-4 victory in Saturday's semi-final, avenging his defeat by the Spaniard in last year's French Open final.
The Austrian will meet 23-year-old Daniil Medvedev in Sunday's final after the Russian also pulled off a surprise by edging out fourth seed Kei Nishikori 6-4, 3-6, 7-5 in a tight match.
Thiem had lost his last two matches against world No 2 Nadal, at Roland Garros as well as a thrilling five-setter in the US Open quarter-finals, but he won their last meeting on Spanish soil, beating the Mallorcan in last year's Madrid Open.
The Austrian, ranked fifth in the world, broke Nadal to take a 3-2 lead in the opener and held in the next game thanks to a stunning crosscourt forehand winner before seeing out the set.
He broke Nadal again in the fifth game to lead 3-2 and edged towards victory by taking a 30-15 lead before Nadal pulled himself back into contention by winning the next three points.
Thiem was serving for the match but Nadal dug deep to earn three break points only to lose each one, Thiem levelling the game with an ace after a marginal call from the umpire.
He sealed his fourth career victory over Nadal in 12 matches with a softly-struck backhand which the Spaniard had no chance of reaching, ending Nadal's chances of a fourth consecutive Barcelona Open title.
Asia's top player Nishikori missed his chance to reach another final at the Barcelona Open after falling to Medvedev.
Fourth seed Nishikori had reached the final of the Catalan clay-court event three times, winning in 2014 and 2015 but losing the 2016 final to Rafael Nadal.
"He played very aggressive and was better today on the clay," Nishikori said. "It was a close match, he played well at the right moments."
The players exchanged breaks in the third set before the seventh-seeded Medvedev seized the first match point to break in the 12th game and win the baseline battle.
Medvedev took the first set but smashed a racquet as Nishikori levelled by winning the second.
Nishikori broke in the first game in the third set, but the Russian soon hit back for 2-2.
Nishikori saved three break points in the sixth game but Medvedev turned the momentum in an instant in the 12th game.
He sent a winning forehand down the line for a match point and immediately converted for victory when Nishikori hit the net with a return.
Nishikori came into the match after beating Medvedev in January's Brisbane final, a success which ended a 51-tournament title drought for the Japanese.
Medvedev, who shook some salt into his mouth during a third-set changeover just to spark his tiring muscles - apparently not for cramping - said his game remained in top gear despite falling behind a break to Nishikori.
"I felt ahead of him mentally in the final set. That is how I managed to break at 6-5," said Medvedev.
"This match shows I'm able to play well on clay against the top 10 guys. I'm feeling strong physically and mentally.
"I'm very happy to win, this gives me big confidence and shows I can do a lot."