Novak Djokovic eased past Grigor Dimitrov to reach his first Miami Open final since 2016 and move within one win of his 100th career ATP title.
Bulgaria's Dimitrov broke Djokovic in the opening game, but the Serb, watched on by his British coach Andy Murray, broke back.
World number five Djokovic, 37, reeled off five straight games to win the first set.
Dimitrov made a shaky start to the second set and the 24-time Grand Slam champion took advantage to progress 6-2 6-3.
"It feels great [to reach the final] without dropping a set," Djokovic told Sky Sports.
"I am feeling as good as I have since the Olympics last year."
Things started off well in windy conditions for 14th seed Dimitrov, 33, in the oldest ATP Masters 1,000 semi-final in history.
He won the first game on Djokovic's serve but was unable to capitalise and the classy Serb hit his stride and cruised to the first set,
After a fan was kicked out after saying something to annoy Dimitrov, the Bulgarian made a slow start to the second set.
Dimitrov, last year's beaten finalist, won three of his service games, but Djokovic was just too good.
The six-time Miami Open champion only made five unforced errors to his opponent's 32.
"There were a couple of tight games in the last part of the match," said Djokovic.
"It was 4-2, 30-30 and he missed a couple of forehands and then I found some really good serves with new balls in the last game.
"These were tricky conditions. Very swirly. The wind was not consistent, changing a lot. It's not easy to find control of the ball.
"I tried to make him play in these conditions because he's a clean hitter. I knew he'd struggle if I made him play an extra shot. He struggled with the first serve more than I did."
The fourth seed, at 37 years and 10 months old, is the oldest ATP Masters 1,000 finalist ever, having also been the oldest semi-finalist.
He will face either unseeded Czech Jakub Mensik or American Taylor Fritz, in Sunday's final. They play their semi-final later on Friday.
Among the spectators was Argentina footballing great Lionel Messi, who plays for Inter Miami.