Victory for Dimitrov means he's into his first ever ATP World Tour Masters 1000 final but he had to come through a titanic battle to get there, winning 7-6 (7-4) 7-6 (12-10), in two hours and five minutes.
John Isner, who conceded just eight points from his six service games during the opening set, missed two chances to break when leading 3-2 and 40-15.
In the end it came down to whoever blinked first and, in the opening tie-break, the decisive moment came on the fifth point when the 26-year-old Bulgarian secured the only mini-break.
The second set followed a similar pattern, with the sole break point arriving in game 10 when Dimitrov was briefly offered a first match point.
But the 32-year-old from North Carolina survived and the contest almost predictably journeyed towards a second tie-break.
After both players each suffered two mini-breaks early in the tie-break, 12 successive points went with serve, and produced some memorable tennis on either side of the net.
Isner watched three-set point opportunities come and go, before Dimitrov finally put the match to bed on his fourth match point.
"I think it's a good step," Dimitrov said on the ATP website. "It's a good step. I have been on the tour for quite some time now, and I appreciate those moments. I'm starting to appreciate them even more.
"Being able to compete at a final, it's always a great feeling. No matter Masters 1000 or 250, it's always something that you work for. It all comes down to that."
He will face Nick Kyrgios who gained a hard-fought semi-final victory against David Ferrer, a 100/1 each-way selection for the out of luck Schooler, and the Australian is Sky Bet's 8/13 favourite with Dimitrov 5/4.
Kyrgios fired down 14 aces to Ferrer's one but still needed a little over two hours to see off the Spaniard 7-6 (7/3) 7-6 (7/4).
Related Tennis Links
Sky Bet's Tennis Odds