The Swiss maintained his record of never losing a Wimbledon semi-final to reach a record eighth showpiece match at the All England Club with a dominant performance under the closed Centre Court roof.
After the first two sets were shared in less than an hour, the match came alive in the third set.
Serving at 4-5 Djokovic blazed a smash long at 15-30 to give Federer two set points. Djokovic saved the first with a forehand but Federer seized his chance, winning a sensational 20-stroke rally with a smash to move within a set of the final.
Image: Roger Federer of Switzerland reacts after defeating Novak Djokovic of Serbia during a semifinals match at the All England Lawn Tennis Championships at Wimbledon, England, Friday, July 6, 2012.