The Swiss was out-hit by Murray in the early exchanges but produced a classy response to overwhelm the US Open champion with a superb demonstration of his all-court game, setting up a final against world number one Novak Djokovic.
Murray, who lost to Federer in the Wimbledon final this year but gained revenge to win gold at the Olympics, broke the Federer serve in the first game at the O2 Arena.
Federer got it back to level the set at 4-4 and raised his game to win a first set tiebreak 7-5, Murray breaking a racquet in anger as the Swiss got on top.
The 17-time grand slam champion broke Murray from 40-0 in the third game of the second set and accelerated to victory with a flurry of shot-making, sealing the win on his first match point after one hour 33 minutes.