The six-times grand slam champion had to draw on all the experience gleaned in 23 major semi-finals to get the better of 23-year-old Dimitrov, who was on a roll after winning the pre-Wimbledon tournament at Queen's Club and downing third-seeded champion Andy Murray in the quarter-finals.
"It's a good win for me. I am really pleased to be part of another entertaining match," Djokovic said. "Considering that I have lost the past couple of grand slam finals - and all these matches I could have won - I am looking forward."
Both players slipped and slid along the dusty Centre Court baselines, frequently losing their footing.
But Djokovic started smoothly, breaking the serve of the Bulgarian, nicknamed "Baby-Fed" for expansive shot-making reminiscent of Roger Federer, in the fifth game of the first set and claiming it in only 27 minutes.
The Serb, who was runner-up last year, looked to be cruising when he broke again in the third game of the second set. But Dimitrov, watched anxiously by girlfriend and former champion Maria Sharapova, raised his energy to reel off five games in a row to level the score.
Two gladiatorial sets followed by tiebreaks were testament to the intensity of the contest.
With the match on a knife-edge, it was Djokovic who found the extra grit. He saved a set point in the ninth game of the fourth set and three in the tiebreak before sealing victory with a crosscourt forehand winner.
Djokovic described his opponent as a "future star" with quality shots.
"He's already a top player, winning against Murray in the quarters," Djokovic said, adding that Dimitrov deserved respect for fighting so valiantly in his first semi-final.
Djokovic will play seven-times winner Federer or 23-year-old Canadian Milos Raonic in Sunday's final.
- Sports & Recreation
- Andy Murray
- grand slam champion
- Roger Federer