A tournament of upsets in Indian Wells will end with a 33rd meeting between Roger Federer and Novak Djokovic.
Federer breezed past Alexandr Dolgopolov 6-3 6-1 while Djokovic had a decidedly tougher time in suppressing the big serving of John Isner.
Having saved three set points before clinching the opener, second seed Djokovic then twice missed the chance to serve out the match and found himself in a third set.
The Serbian could not hide his frustration but, with Isner feeling his troublesome knee, Djokovic pulled away to win 7-5 6-7 (2/7) 6-1.
He has appeared to lack conviction this season and this was the third match of the BNP Paribas Open in which he has dropped a set.
"I think he really wants it, and that's going to be a challenge for me to accept that and fight that with good play myself" - Roger Federer
Djokovic, who lost to Isner in the semi-finals two years ago, said: "He definitely has the best serve in the world right now but I should have closed it out in the second set, then he played an incredible tie-break.
"It was a little bit too frustrating and emotional but I'm very happy to win."
Federer leads his head-to-head with Djokovic 17-15 and ended a three-match losing run with victory in the semi-finals in Dubai last month, going on to lift the trophy.
The Swiss said: "I think we have had great matches always. We both know what to expect going into it, and even more so maybe now that we have just played in Dubai, and also in Paris and London at the end of last year.
"I think he's fresh and eager to really try and win this, because he hasn't played many tournaments yet this season. I think he really wants it, and that's going to be a challenge for me to accept that and fight that with good play myself."
It is the first time since 2006 that Djokovic has got this far into a season without winning a trophy, and he will be looking for his third title in Indian Wells.
The 26-year-old said: "We've played against each other many times and on all different occasions. I think only the best about Roger. He's playing some great tennis this year and there will be no favourite in this final."
Dolgopolov had beaten three higher-ranked players on his way to the last four, including Rafael Nadal in the third round, but struggled in the windy conditions and lost in just 61 minutes.
Initially the Ukrainian looked to be handling his first Masters semi-final well but from 3-3 he lost five straight games.
Federer has not dropped a set all tournament, his shaky confidence from last year banished by an excellent start to the season and his movement no longer compromised by a sore back.
The result was all but decided when Federer showed outstanding defensive skills to win a long game and lead 4-1 in the second set, and he wrapped up his 11th straight win moments later.
It was in Indian Wells last year that Federer first hurt his back, and he admitted the three weeks he spent in pain left him "scarred".
The 32-year-old won just one title last season, and a minor one at that, and saw his run of 36 straight grand slam quarter-finals come to an end in the second round at Wimbledon.
He has been a different player this season, and Federer said: "I think the results are better than I thought they would be.
"I expected myself to play better starting March, April. So for it to all start earlier gives me more information how my body is, how my mind is, and from now on I really feel I am really there where I want to be, or where I wanted to be six months ago.
"Now it's just a matter of keeping that up, taking the right decisions not to overplay, not to underplay, and to enjoy myself, because that's also very important.
"But having the fire and wanting to win every single match you go out there, and in the practice trying to improve as much as you can - I think I've got a good balance right now, so it's very encouraging."