Novak Djokovic moved a step closer to his second Wimbledon title as the top seed booked his third appearance in the final with a gritty 6-4, 3-6, 7-6 (7-2), 7-6 (9-7) victory over Grigor Dimitrov on Friday.
Djokovic, who won the Wimbledon title in 2011, rarely hit peak form in a patchy semi-final on Centre Court, but showed all his battling qualities to overcome the Bulgarian 11th seed in a three hour and two minute war of attrition.
The 27-year-old, a six-time grand slam winner, will face Swiss seven-time Wimbledon champion Roger Federer or Canadian eighth seed Milos Raonic in his 14th grand slam final as he looks to avenge last year's final defeat against Andy Murray.
World number two Djokovic will reclaim top spot in the rankings from Rafael Nadal for the first time since September 2013 if he lifts the trophy in his third Wimbledon final in four years on Sunday.
"I thought I started well, but once again I allowed my opponent to get back into it," Djokovic said. "The fourth set could have gone either way but overall I'm happy to be in another Wimbledon final.
"It's the semi-finals of Wimbledon playing against the future star. He was fighting and playing some great shots, so it was a tough match and it's a good win for me definitely."
Djokovic has been beaten in five of his last six grand slam finals, with his last major triumph coming at the 2013 Australian Open, and he admitted he is desperate to end that frustrating run this weekend.
"I'm looking forward to another championship match, especially considering I have lost the last couple of finals," he said.
"I will have to be at my best. It's a big challenge. It's the Wimbledon final, the biggest event we have in the sport, and I'm looking forward to competing in it."
After his sensational quarter-final victory over defending champion Murray, this inconsistent display was a disappointing way for Dimitrov to end his best run at a grand slam.
But the 23-year-old is clearly on the rise and will move into the top 10 for the first time next week.
There was little to separate the two for much of the match, with Djokovic edging the first set after a poor Dimitrov service game at 2-2.
Djokovic broke for a 2-1 lead in the second set, but still looked strangely tense and a sloppy backhand into the net gifted Dimitrov a break back in the sixth game.
With girlfriend Maria Sharapova cheering him on from the players' box, Dimitrov began to unfurl some sublime winners and he broke again to earn a 5-3 lead before serving out the set.
The tension and errors remained high, with both players struggling to keep their footing on the dusty, sun-baked court.
After coming from behind to defeat Marin Cilic in the previous round, Djokovic was battle-hardened and stepped up his level to win the third set tiebreak in flawless fashion.
Dimitrov appeared to have surrendered in the third game of the fourth set when three successive double faults and a careless forehand put Djokovic 2-1 ahead.
But Djokovic gave Dimitrov renewed hope when he dropped his own serve in the next game.
Still looking unhappy with the slippery surface, Djokovic had to save three break points at 3-3 and a set point at 4-5 before taking an angry swipe at the grass.
Dimitrov took it to a tiebreak and worked his way into 6-3 lead, but Djokovic saved all three set points to break Dimitrov's resistance at last and, after squandering one match point with an ill-advised rush to the net, he converted the second to seal a gruelling triumph.