Russia's 14th-seeded Vesnina toppled the second-seeded German 6-3, 6-3 to book a quarter-final clash.
Russia's 14th-seeded Vesnina toppled the second-seeded German 6-3, 6-3 to book a quarter-final clash with seven-time Grand Slam champion Venus Williams.
Williams battled back from a break down in the final set to beat Chinese qualifier Peng Shuai 3-6, 6-1, 6-3.
"(I) wasn't really sure how it was going to turn out today," Williams said.
"There were some up-and-downs and errors. It was so frustrating. But I feel like I got my focus more in that second set and towards the end of the third, because I'm just a competitor. So if things get closer, then I think my better tennis is going to come."
Vesnina, the 14th seed, notched her first career victory over a top-three player. Kerber was the top-ranked player in the draw, and will return to number one in the world on Monday despite the defeat thanks to Serena Williams' injury withdrawal from the event.
Vesnina went up a quick break and never trailed. She broke Kerber five times, and managed to stifle a would-be rally that saw the German close the gap from 4-1 to 4-3 in the second set.
"I was a little nervous at the end of the match," Vesnina said. "So I'm really happy that I closed that match because this win means a lot to me."
Kerber, winner of the Australian and US Opens last year, had struggled past 62nd-ranked Pauline Parmentier in the previous round and said she never found her rhythm against Vesnina.
"It was not my day," she said. "I was doing a lot of mistakes. I was not moving, actually, good. But it's happened. I mean, she played from the beginning until the end good tennis, and she was aggressive. So she took the game in her hands."
Eighth-seeded Russian Svetlana Kuznetsova sped past Caroline Garcia 6-1, 6-4 to lead the way into the quarters.
Kuznetsova is in the last eight in the California desert for the first time since reaching back-to-back finals in 2007 and 2008.
The 31-year-old Russian, owner of two Grand Slam singles titles, enjoyed a resurgence in 2016, winning two titles and upsetting world number one Serena Williams in Miami as she returned to the top 10 in the world for the first time since 2010.
"I just fell in love with the game again," said Kuznetsova, who next faces compatriot Anastasia Pavlyuchenkova, who toppled fifth-seeded Slovak Dominika Cibulkova 6-4, 3-6, 6-2.
Pavlyuchenkova belted 35 winners as she kept the normally aggressive Cibulkova in check, avenging a three-set loss to the Slovak in Doha.
"I always like to get revenges," Pavlyuchenkova said.
Third-seeded Czech Karolina Pliskova booked her quarter-final berth with an abbreviated appearance under the hot desert sun.
She was leading Timea Bacsinszky 5-1 when the Swiss player retired with a left wrist injury.
Pliskova next faces seventh-seeded French Open champion Garbine Muguruza, who downed 10th-seeded Ukrainian Elina Svitolina 7-6 (7/5), 1-6, 6-0.