World number six Alexander Zverev recovered from losing the opening set to beat Matteo Berrettini and win his second Madrid Open title.
The German came through 6-7 (8-10) 6-4 6-3 against the Italian world number 10, who had been seeking his maiden ATP Masters 1000 title.
Zverev, 24, had beaten Rafael Nadal and Dominic Thiem on his way to the final.
Berrettini, 25, saved one match point in the third set but Zverev showed his strength to claim victory.
"I feel awesome," Zverev said. "It's great. This is definitely a special win. I just want to enjoy it.
"I didn't play too many guys this week who can serve like him, so it was a difficult match."
After saving an early break point in the first set with a drop shot, Berrettini used the tactic once more at 3-3 to earn his first two break points of the match and he converted his second opportunity with a deep forehand return.
Despite dropping serve in the next game and letting a 5-0 lead slip in the tie-break, Berrettini kept his composure.
Zverev was unable to convert a set point at 7-6 and the German's double-fault at 8-8 allowed his opponent to quickly capitalise and he secured the set on the next point with a powerful serve out wide.
Zverev held serve comfortably throughout the second set and made the most of a loose service game from his opponent at 4-4 to send the match to a third set.
Unforced errors started to creep into Berrettini's game and the Italian first let a break point chance slip and then dropped his own serve as Zverev moved towards another title.