Federer will meet either Andy Murray or Jo-Wilfried Tsong in the final on Sunday.
A victory would give the Swiss his 17th career grand slam crown and, more importantly, allow him to reclaim the world No. 1 ranking, The Telegraph reported.
"I'm ecstatic, I'm so happy," Federer said after booking his place in a record eighth Wimbledon final.
"I played a great match today and it's been a tough tournament for me really. But I was able to play some fantastic tennis today and I thought Novak played good too.”
The Associated Press said the third set of the match, which lasted two hours and 19 minutes, was the turning point, with Federer winning the points that mattered.
"The first two sets went really quickly and then the third set was really key and I managed to step it up and maybe get a bit lucky because he also had break points near the end of the third,” Federer said.
“It was a lot of fun out there today.”
Djokovic, who had defeated Federer six times in their last seven meetings, admitted he was outplayed in the key moments of the match, Agence France-Presse reported.
"He was the better player in the important moments. I expected him to be at his top level; I expected myself to be at that level too, but I wasn't."
More from GlobalPost: Rufus the stolen Wimbledon hawk returned, back scaring pigeons