Roger Federer continued to look the man to beat at Indian Wells as he raced past Kevin Anderson and into the semi-finals.

The 32-year-old's 7-5 6-1 victory was his 10th in a row as he made short work of the man who had dumped out his doubles partner Stanislas Wawrinka on Wednesday.

Federer won seven games in a row from 5-5 in the opening set, and he said: " It was a really good match for me."

It has been a complete turnaround for the Swiss after his struggles last season, and he admitted the speed of the transformation has even taken him by surprise.

He said: "There is a sense of calmness to my game right now. Also confidence. But also that grit and wanting to win badly feeling is out there, which was hard to find at times last year.

"So now I've got it all. That results came as quickly as they did, maybe that did surprise me a little bit."

In the last four Federer will face Alexandr Dolgopolov, who won the battle of the giant-killers against Milos Raonic to reach his first Masters series semi-final.

The Ukrainian knocked out world number one Rafael Nadal in the third round while Raonic toppled Wimbledon champion Andy Murray on Wednesday.

Raonic led 3-0 in the second set but Dolgopolov won five games in a row and clinched a 6-3 6-4 victory.

The 25-year-old reached a career-high ranking of 13 two years ago and appears to be returning to that form.

He said: "With my game I always believed I can beat anyone on a good day because I hit flat, I have the shots. I wasn't consistent enough, that's true. But I knew if I can get that consistency that I can trouble anyone."

Li Na will play Flavia Pennetta in the semi-finals of the women's event after the Italian defied a dust storm to defeat Sloane Stephens.

There had already been plenty of twists and turns before the wind whipped up and the Santa Rosa mountains disappeared from view.

Stephens initially seemed to be dealing with the conditions better and, having broken Pennetta when she served for the match in the second set, the American made it six games in a row to lead 3-0 in the decider.

But back came Pennetta and she eventually took her fifth match point to triumph 6-4 5-7 6-4.

Pennetta said: "We didn't have a lot of fun today. I think it was not nice tennis on court.

"The third was a disaster for both of us. I mean, I won. 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."

The Italian has had a remarkable 10 months and will return to the top 20 a year after considering retirement as she battled to rediscover her form after wrist surgery.

Li also came through a long battle to win her Australian Open rematch with Dominika Cibulkova 6-3 4-6 6-3.

The top seed had won all five previous clashes with Cibulkova, most recently in the final in Melbourne, where she secured her second grand slam title.

On that occasion Li was a convincing winner, not dropping a game in the second set, but things were very different in California.

The Chinesewoman made a good start and took the opening set but her forehand lost its radar in the second and Cibulkova raced into a 5-1 lead.

Li recovered three games but could not salvage the set, and the world number two looked increasingly frustrated as the decider became a dogfight.

But she found her form just in time to win the final three games and make the last four in Indian Wells for the first time since 2007.

Asked if she was happy with her performance, the world number two said: "Half and half. At least I'm still in the tournament.

"I think it's still a little bit of a problem because my level cannot stay the same from the beginning to the end. A t least I got information so I'll take it."