Andy Murray progressed to the Madrid Masters semi-finals with a 6-4 7-5 victory over fifth seed Milos Raonic.
The British number one, 27, broke once in each set to overcome the Canadian, who was hampered throughout by a trapped nerve in his right foot.
He will play Japan's Kei Nishikori on Saturday after the fourth seed beat Spaniard David Ferrer 6-4 6-2.
Spain's defending champion Rafael Nadal faces Tomas Berdych in the other semi-final after beating Grigor Dimitrov.
Raonic showed great courage to take to the court against Murray despite showing immediate signs of the injury that forced him to retire from last month's Monte Carlo Open and had already caused him to pull out of next week's Italian Open.
Murray, who had lost three of his five prior encounters against Raonic, said: "I didn't know he was injured before we came out, but I saw early on he was struggling.
"The problem was he was still serving at 230km/h an hour and pulling out all the stops on second serves, which put me on the back foot.
"Thankfully I was getting in a high percentage of my own first serves today and was able to get him moving around the court, with the drop shot working well."
Despite his injury, Raonic frustrated Murray early on with powerful and accurate serving and some blistering winners.
The first set looked to be heading for a tie-break until Raonic erred with two double faults and a wayward volley at the net in the ninth game to allow Murray to serve out the set.
It went with serve at the start of the second set but Raonic increasingly struggled with his injury and Murray pounced with a break to love in the eleventh game.
Raonic survived one match point but he went long on a second and Murray, who last week won his first clay-court title at the Munich Open, stretched his unbeaten run on the surface to seven matches.
Earlier, Nadal remained on course for a third successive Madrid title after a comfortable 6-3 6-4 victory over Bulgaria's 10th seed Dimitrov.
The Spanish third seed was all over the Bulgarian's serve in the opening set, taking three out of 11 break points.
Nadal, 28, was broken early in the second, but broke back in the sixth game and was too strong for Dimitrov when he served to stay in the match.
He said: "I played a complete match, apart from two games in the second set when my intensity dipped a little,
"I am very happy, very satisfied and it is a great result to be in the semi-final. I have passed an important test."
Czech Berdych, the sixth seed, beat big-serving American John Isner 3-6 7-6 (9-7) 7-6 (7-1), saving a second-set match point in a match that lasted two hours nine minutes.