Serbian second seed Djokovic was pushed to a deciding set by local hope and 12th seed Isner, before the American fell away late to see the six-time major winner prevail 7-5 6-7 (2-7) 6-1 in two hours and 23 minutes.
Djokovic will face Swiss seventh seed Roger Federer in the final in Indian Wells.
Federer earlier dispatched of Ukraine's Alexandr Dolgopolov, with the 28th seed unable to prolong his run at the ATP 1000 event further, falling 6-3 6-1.
Big-serving American Isner will be ruing his missed opportunities in his semi-final with Djokovic, after holding three set points on the Serb's serve in the opener.
Djokovic went on to hold from 0-40 and 4-5 down, and affected the break the very next game before serving out the opener in a stunning momentum swing.
Isner was then on the brink of defeat, as Djokovic twice had the balls to serve for the match at 5-4 and 6-5, but uncharacteristically, the former world number one slipped up - getting broken to 15 and then to love.
In the tie-break, Isner sustained his momentum gained from battling back from deficits, earning a point against the Djokovic serve to move 4-1 up.
The next two points were on the Serb's racquet, but Isner would win both of them, before levelling the match on his second set point.
Djokovic would steady the ship in the third set, though, breaking for a 3-1 lead, and saving break point in the fifth game to ensure himself of a comfortable advantage.
That seemed to shatter Isner's resolve, as the American was broken in his next service game, before Djokovic served out the match to love.