Big-serving Milos Raonic fought back from a set down to upset Rafa Nadal 4-6, 7-6(10), 7-5 in a pulsating quarter-final at the BNP Paribas Open on Friday.
The 24-year-old Canadian's first win over Nadal in six meetings earned him a place in Saturday's semi-finals where he will face Roger Federer, who cruised through the last eight with a ruthless 6-4, 6-0 demolition of Czech Tomas Berdych.
World number one Novak Djokovic will face fourth-seeded Scot Andy Murray in Saturday's other semi in a re-match of this year's Australian Open final, won by the Serb in four sets.
Raonic saved three match points in the second set before levelling the contest in a nail-biting tiebreaker. He then broke Nadal in the 11th game of the third set before serving out for victory to bring a match lasting almost three hours to a close.
Nadal squandered three match points
Nadal, a three-times champion at Indian Wells, broke Raonic once to clinch the opening set in 37 minutes and had further break point opportunities in the first, fifth and ninth games of the second -- all five of them saved by the Canadian.
The set went to a nerve-jangling tiebreak where Nadal squandered three match points before sixth seed Raonic, playing more aggressively, finally squared the match at his third attempt when the Spaniard netted a forehand.
Both players saved further break points in the third set before Raonic broke Nadal in the 11th game when the Spaniard hit a backhand long and the Canadian booked his place in the last four by comfortably holding in the 12th.
Federer bidding for record fifth title
Federer, bidding for a record fifth title at the ATP Masters 1000 event, broke Berdych once in the first set and three times in the second to seal victory in just 68 minutes at a sun-bathed Indian Wells Tennis Garden.
"I was really able to put the pressure on Tomas from the baseline," the Swiss world number two said after hitting 21 winners while improving his career record against the Czech to 13-6.
"I felt like I was hitting the ball well but also playing the right way. I had the upper hand and he didn't have his best serving day ... I was able to control the match."
Ninth-seeded Berdych, whose best run at Indian Wells came in 2013 when he lost to Nadal in the semi-finals, served five double faults and never earned a single break point against the Swiss.
Crunching forehand hands Federer the winner
Federer broke Berdych in the seventh game of the match, when the Czech netted a backhand, before taking the opening set in 40 minutes.
The Swiss master dominated the second set with superb all-round tennis against an increasingly error-prone Berdych, who lost serve in the first and third games to go 0-3 down.
Federer again broke the Czech in the fifth, celebrating with a fist pump after crunching a forehand winner down the line, before serving out to book his place in the last four.