London - Seven-time champion Roger Federer reached the Wimbledon semi-finals for the 12th time on Wednesday with a 6-4, 6-2, 7-6 (7/4) win over Milos Raonic.
Federer, 35, and playing in his 100th match at the All England Club, will now face 2010 runner-up Tomas Berdych for a place in Sunday's final.
Berdych made the last-four when three-time champion Novak Djokovic retired with a right elbow injury when trailing the Czech 7-6 (7/2), 2-0.
Federer is the second oldest man to reach the semi-finals after Ken Rosewall who finished runner-up in 1974 at the age of 39.
"100 matches, I can't believe it, that's a lot," said Federer, who is chasing a record eighth Wimbledon title.
"I'm very happy my body kept me going over all these years. It was a perfect setting, beautiful weather -- a Mexican wave on Centre Court, you don't see that every day. I'm so happy to be through.
"I'm very pleased with how I'm playing. You can always play a little better. You adjust to the conditions.
"It's like going to work, you can't produce the best every single day but you have to make sure your average is as high as possible."
Canadian sixth seed Raonic had knocked out Federer in the semi-finals in 2016, a defeat which led the Swiss superstar to shut down the rest of his season to rest a knee injury.
On Wednesday, Federer matched the big-serving Canadian with 11 aces while crunching a spectacular 46 winners.
He also saved all five break points he faced and has reached the semi-finals without dropping a set.
Wimbledon results on Wednesday, the ninth day of the 2017 championships at the All England Club (x denotes seeding):
Sam Querrey (USA x24) bt Andy Murray (GBR x1) 3-6, 6-4, 6-7 (4/7), 6-1, 6-1
Marin Cilic (CRO x7) bt Gilles Muller (LUX x16) 3-6, 7-6 (8/6), 7-5, 5-7, 6-1
Roger Federer (SUI x3) bt Milos Raonic (CAN x6) 6-4, 6-2, 7-6 (7/4)
Tomas Berdych (CZE x11) bt Novak Djokovic (SRB x2) 7-6 (7/2), 2-0 - retired