Djokovic reached his 10th final of the season when he beat fourth-seeded Tomas Berdych 6-3, 6-4 in the first semi.
Murray broke Federer in the fifth game of the first set. He had a chance for another break in the first game of the second, but the top-ranked Swiss star managed to hold serve before a brief rain delay interrupted the match.
Murray broke again to go up 3-2 in the second, and the U.S. Open champion had to endure one more rain delay before serving out the match.
The players left the court for about 30 minutes at 5-4, while organizers closed the eight-petal magnolia-shaped roof. When play resumed, Murray only needed five points to complete the victory.
Djokovic is looking for his fifth title of the year and second straight after winning in Beijing last week.
He smacked 25 winners against Berdych and converted all three of his break points to improve his head-to-head record against the Czech to 10-1.
It was Djokovic's tour-leading 69th victory of the year.
"Movement today was very important from my side, to be on a very high level so I can try to get into the longer rallies where I find more chances on my side to win the rallies," Djokovic said. "(I) played tactically right. I was putting a lot of returns into the court, making a lot of pressure on his serve."
Djokovic rushed out to a 5-1 lead in the first set. He broke Berdych in the third game of the second and closed out the match in 1 hour, 25 minutes.
"First of all I need to give credit to Novak, he started really like a champion," Berdych said. "He started really, really great, and didn't give me a chance at all."