The big-serving American blasted a total of 20 aces past the top-seeded Serb, the last of them a well-placed 135mph serve to clinch the final-set tiebreak 7-5 and end the match after two hours and 45 minutes.
Isner, who had lost to Djokovic in their previous two meetings, threw his arms skywards in celebration before light drizzle began to fall on the showpiece stadium court at the Indian Wells Tennis Garden.
"That's why I play this game, is to be able to enjoy moments like that," said 11th seed Isner with a broad grin after reaching the final in an elite ATP Masters 1000 event for the first time.
"It was very special when that last ball went by him and I knew I had won the match. Not many people can say they've ever beaten the number one player in the world.
"I'm gonna have another shot tomorrow to play in front of a packed house for a big tournament title."
The American will meet three-times champion
Under leaden skies in the California desert, Djokovic broke Isner to love in the third game of the match, when the American dumped a forehand into the net, to lead 2-1.
However, Isner broke back in the 10th, hitting a forehand service return that clipped the line.
The next two games went with serve for the set to go into a tiebreak and Isner, roared on by a partisan near-capacity crowd, charged 5-3 up as he regularly pounded down 140mph serves.
Djokovic clawed his way back and saved two set points before the American clinched the tiebreak 9-7 when the Serb netted a backhand service return. Isner pumped his right fist in delight, having won the first set in an hour.
The American, who last month upset Federer in four sets in a Davis Cup first round tie, lost serve in the eighth game of the second, saving three break points after trailing 0-40 before the Serb went 5-3 up when Isner hit a forehand long.
Djokovic comfortably held in the ninth, firing a crunching forehand winner into an open court to level the match.
The Serb had a chance to break Isner in the seventh game of the final set after his opponent netted a backhand on deuce but the American responded with a 143mph ace before holding.
The next five games went with serve to take the set into a tiebreak and Isner raced 6-3 up, to hold three match points, after blasting a 144mph ace.
Djokovic won the next two points, the first with an ace of his own and the second when Isner netted a forehand service return, before the American sealed victory with another booming first serve.
"It's frustrating when somebody serves over 70 per cent of their first serves in with that angle and with that speed and accuracy," Australian Open champion Djokovic said.
"I knew I had to stay patient and just wait for the chance. I had some chances, I didn't use them. But I thought I played a really good match.
"He played very well when he needed to, so all the credit to him."