The former world number one earned a 6-4 6-4 6-4 win over his Canadian opponent on Centre Court this afternoon.
The Swiss pro will take on Novak Djokovic in the final on Sunday as he bids to clinch a historic eighth title at the All England Club.
"That was a big victory," Federer told BBC Sport. "I really had to focus on every point. I know that is always the case at this stage but it was hard.
"I had to be very careful on my service games and I knew there were only going to be a few chances on his serve but I am very, very happy.
"I played some great tennis under pressure at times because I didn't play well here last year and I expect a lot of myself. In the second week I have played better as the week has gone on. Now I can look forward to another great match with Novak."