Novak Djokovic cruised past Grigor Dimitrov to reach his first Miami Open final since 2016 and move within one win of his 100th career ATP title.
He will face unseeded Czech player Jakub Mensik in Sunday's final following his shock 7-6 (7-4) 4-6 7-6 (7-4) victory over American Taylor Fritz in Friday's second semi-final.
Bulgaria's Dimitrov broke Djokovic in the opening game, but the Serb, watched by his 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 go through 6-2 6-3.
"Ever since I won my 99th [title], which was the Olympic Games in Paris, I've been playing with the prospect of winning the special 100 titles," said Djokovic.
"I've been trying to find that necessary and much-needed level of tennis that will put me in a position to fight for a trophy, a big trophy.
"That's what I've been doing this week, to be honest. I've been very happy with the way I prepared for the tournament, the way I've been playing. I haven't dropped a set.
"It's a great opportunity. Let's see what happens in two days."
Things started off well in windy conditions for 14th seed Dimitrov, 33, who won the first game on Djokovic's serve but was unable to capitalise and the classy Serb hit his stride and easily won the first set.
After a fan was ejected 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 1000 finalist ever, having also been the oldest semi-finalist.
Djokovic will face 19-year-old Mensik at the opposite end of his career arc, with the Czech teenager reaching his first final of a Masters event.
The world number 54 lost his only previous final on the ATP Tour in Qatar last year and won through in Miami despite failing to break the serve of third seed Fritz.
His victory was sealed in a flurry of aces, sending down 25 compared with Fritz's 14 as he edged to victory by winning tie-breaks in the first and third sets.
The rising young star put his unexpected victory down to a chance meeting with Argentina footballing great Lionel Messi after the Inter Miami forward had gone into the locker room at the Hard Rock Stadium to congratulate Djokovic on his win.
"Meeting this legend, not even a human, it's not happening every day," said Mensik.
"I just chilled with him a bit and shook his hand. And after shaking that hand, I didn't wash it before the match, you know, to bring me some luck, so probably that was the key for me today."