Italy's Jannik Sinner destroyed defending champion Daniil Medvedev 6-1, 6-2 in just 69 minutes on Friday to reach the final of the ATP Miami Open, where he will take on Grigor Dimitrov.
Bulgarian Dimitrov made his third Masters 1000 series final after he beat fourth-seeded Alexander Zverev 6-4, 6-7 (4/7), 6-4.
Sinner will be the favorite against world number 12 Dimitrov, after his display of power and skill at Hard Rock Stadium swept away Medvedev.
The Italian had lost to the Russian in the Miami final last year but rallied from two sets down to beat him in the Australian Open final in January.
The outcome was never in doubt this time as Sinner utterly dominated from the outset.
Sinner broke Medvedev's first service game to go 2-0 up in the opening set, pinning the Russian in the corner at the end of a long rally before blasting a winner past him.
While the 22-year-old looked fresh and fired up, blasting with power from the baseline and inventive when he came to the net, Medvedev was struggling to just hold his serve and the Italian broke again in the fourth game, taking advantage of his fourth break point.
A rattled-looking Medvedev finally held in the sixth game, but Sinner served out to love to complete a first-set rout in just 33 minutes.
It was the same story in the second set, Sinner breaking to love to start. The Russian looked dejected after he went wide on a break point to fall to 4-1 down, one of a series of unusually poorly executed shots from the 28-year-old.
Sinner met little resistance on his way to serving out for the match and acknowledged that his emphatic win was helped by the out of sorts nature of his opponent's play.
"I felt great on court today. Usually the more you go on in a tournament, the more comfortable you feel and I'm very happy about today's performance," he said.
"I think Daniil didn't feel this well today. He made a lot of mistakes which he usually doesn't make, so I just took the chance. I was expecting a really tough match."
- Different player, different person -
Sinner has won five straight matches against Medvedev after having lost their first six encounters.
Sinner, who enjoyed a run of 19 wins before losing to Carlos Alcaraz in the semi-final at Indian Wells, said he is now a very different proposition than when he missed out in the Miami final last year.
"I'm a different player, a different person," he said.
Medvedev was blunt in his assessment of his performance.
"He played good. I didn't play well enough. We could speak for hours but in the end I didn't play good enough, he played good, he won easy. That's the end of the story, to be honest," he said.
But he said Sinner had clearly accelerated his improvement over the past year.
"He misses less, he chooses his shots more wisely. He serves 10 times better. You know, Jannik was always serving well, but now he serves like big, big.
"I wonder actually how he made it, because serve is not that easy a shot to work on, and now he's, yeah, his serve is a big improvement for him"
The second semi-final was a much tighter affair which was decided by a handful of key moments.
Dimitrov, who ousted world number two Carlos Alcaraz in the quarter-finals, broke when 5-4 up in the first set, Zverev mis-timing a return which ballooned out of court to hand the advantage to the Bulgarian.
The big-serving German was solid throughout the second set and while he wobbled at 6-2 up in the tie-break he held on to win 7-4 and force a deciding set.
With Dimitrov always busy, frequently going to the net, Zverev was relying on his baseline play to get him through.
But he was broken in the seventh game when Dimitrov came towards the net, slipped but somehow managed an overhead volley while almost on the floor to win break point.
The Bulgarian was buzzing with energy as he saw out the set and said his improvised winner had shown his mentality.
"I was not letting any balls pass through me...I just thought, OK, I'm seeing the ball, I am going to scramble for it.
"It was a dogfight on both ends, we really went at each other after that first set," he said.