Roger Federer moved into the semi-finals of the BNP Paribas Open at a windy Indian Wells after defeating South African Kevin Anderson 7-5 6-1.
It was the 10th win in a row for the Swiss, 32, who has put his poor form of last season behind him.
"There is a sense of calmness to my game now," said the world number eight.
Li Na, 32, reached the semi-finals of the women's competition for the first time since 2007 with a 6-3 4-6 6-3 victory over Dominika Cibulkova.
Federer will face Alexandr Dolgopolov - who knocked out Rafael Nadal in the third round - after he beat Andy Murray's conqueror, Milos Raonic, to reach his first Masters series semi-final.
After also winning in Dubai two weeks ago, Federer, a 17-time Grand Slam winner, admitted his recent improvement had taken him by surprise.
"That grit and wanting to win badly feeling is out there, which was hard to find at times last year," he said.
Dolgopolov, 25, clinched a 6-3 6-4 victory over Raonic and is returning to the form that took him to number 13 in the world two years ago.
Li Na will play Flavia Pennetta after the Italian beat Sloane Stephens 6-4 5-7 6-4 in a dust storm.
Pennetta said: I'm happy because I got through this match, but I don't have a good feeling right now.
"Outside it's crazy. The wind came from nowhere."
Meanwhile, Laura Robson has confirmed she will miss next week's tournament in Miami to give her injured left wrist more time to recover.
The British number one has not played since her first round defeat to Kirsten Flipkens in January's Australian Open.