Aryna Sabalenka put on a powerful display to beat world number one Ashleigh Barty 6-0 3-6 6-4 and win the Madrid Open.
The Belarusian raced through the opening set in just 25 minutes as Barty failed to win a game in a set for the first time in four years.
Sabalenka's standard dropped in the second set as Barty dug in to level it.
A sloppy service game from Barty at 4-4 in the third handed the advantage to Sabalenka who served out for the win.
It was revenge for Sabalenka after Barty had come from a set down to beat her in the final in Stuttgart two weeks ago.
"To be honest, after the final in Stuttgart I was injured, I couldn't move and wanted to withdraw," Sabalenka said after she claimed her 10th career title.
"But the recovery was good, in four days I feel better and now I'm the champion. It's been an amazing week."
The win also ended Barty's winning run on clay stretching back to Rome in 2019, just before she won her maiden Grand Slam title at the French Open.
Sabalenka, who had not dropped a set on her way to the final in the Spanish capital, was outstanding in the opening set, breaking Barty three times with some big hitting to leave the Australian reeling.
Barty finally broke her opponent's momentum by breaking in the first game of the second set and although she failed to hold on to that advantage, she showed her depth of talent to break again and send the match into a decider.
In the third set, Barty had two break points to go 3-1 up but Sabalenka saved both.
Barty had looked comfortable on her own serve but, out of nowhere, she started to struggle and Sabalenka broke her to love, converting the first break point with a backhand down the line.
And she showed no sign of nerves when serving out, powering into a 40-0 lead and winning on her first match point when a Barty forehand hit the net to seal the biggest win of her career, which will take her up to fourth in the world.
Sabalenka has never gone past the fourth round at a Grand Slam but will now be among the contenders at the French Open, which starts in Paris on 30 May.