Elena Vesnina has beaten Venus Williams 6-2 4-6 6-3 to reach the semi-finals of the BNP Paribas Open on Thursday.
The 14th-seeded Russian stormed ahead and raced through the first set but the seven-time Grand Slam champion stepped up a gear to take the middle set and force a decider.
Williams had a short-lived break lead in the third set but Vesnina went on to take control, winning five of six games to grab a 5-2 lead in the final set.
The American saved three match points to hold and then earned six break points in the next game, but Vesnina held her nerve to hold her serve, clinching victory on her fourth match point.
Vesnina will Kristina Mladenovic for a place in the Indian Wells final after the French player's 3-6 7-6(4), 6-2 victory over former world number one Caroline Wozniacki.