Rafael Nadal was physically hampered by a knee injury but dug deep to defeat Karen Khachanov and set up a dream semi-final with Roger Federer at the BNP Paribas Open in Indian Wells on Friday.
The Spaniard was given a tough workout by the world No 13 and was forced to battle through the pain barrier to complete a 7-6 (7-2) 7-6 (7-2) victory.
After winning a tight opening set, Nadal was forced into taking an injury time-out early in the second with his right knee taped up. But he shortened the points and came through another tie-breaker to complete a resilient win after two hours and 16 minutes.
Federer stayed on course for a record sixth Indian Wells title after recording a 6-4 6-4 victory against Hubert Hurkacz.
The Pole defeated Canadian teenager Denis Shapovalov to reach his first Masters 1000 quarter-final, but 37-year-old Federer enjoyed the first career meeting with Hurkacz, who is 15 years his junior, giving him a schooling en route to victory in 73 minutes.
"Roger was playing great in the crucial moments. Today was a great lesson for me," Hurkacz said. "I had some small chances, so also give me motivation to work and to get there sometime."
Federer has not dropped a set in four matches in the desert and has been broken just once. He fought off two break points in the second set, including the last game when he closed the match with a forehand winner off a short ball to reach his 12th semi-final in the desert.
Nadal leads Federer 23-15 in meetings but the Swiss has won the past five encounters.
They have not met since Shanghai in 2017, the same year that Federer crushed Nadal in the fourth round at Indian Wells.
The other semi-final will see Austrian seventh seed Dominic Thiem tackle Canadian 13th seed Milos Raonic.
In the women's semi-finals, Canadian teenager Bianca Andreescu plays Elina Svitolina while Angelique Kerber takes on Belinda Bencic.
We have the tennis season covered from all angles via our website skysports.com/tennis. On the move? Head to our app for mobile devices and iPad, or follow our Twitter account @SkySportsTennis to join in the conversation.