London - Seven-time champion Serena Williams reached her 12th Wimbledon semi-final on Tuesday with a hard fought 6-4, 4-6, 6-3 victory over unseeded American compatriot Alison Riske.
The 37-year-old Williams, who is two wins away from equalling Margaret Court's Grand Slam singles title record haul of 24, looked far from convincing as Riske pushed her the whole way over an engrossing two-hour duel.
However, Williams served it out with an ace to seal her 97th win at Wimbledon and avoid the same fate as world number one Ashleigh Barty, who Riske beat on Monday.
"It was really satisfying," said Williams, whose clay court season was affected by a knee injury.
"I wouldn't have won that match a couple of weeks ago.
"I'm glad that I was able to come through. She beat so many great players. She was really so close to taking the win today."
Williams, who moved into second place overall behind Martina Navratilova's record of 120 Wimbledon match wins, was constantly cajoling herself and letting out roars of come on during the match as her sometimes leaden-footed performance threatened to undo her.
Having sealed the match she turned to the players box where among others she was supported by older sister Venus and her husband, Reddit co-founder Alexis Ohanian, and yelled, pumping her fists.
"I was really pumped, it was for a place in the semis at Wimbledon - that doesn't happen every day and it's a long, arduous road," said Williams.
"I just had to just button up and play hard.
"She was playing her heart out and she had nothing to lose and I realised neither did I."
Williams will play either Britain's French Open semi-finalist Johanna Konta or Czech veteran Barbora Strycova for a place in the final.
Wimbledon results on Tuesday (x denotes seeding):
Serena Williams (USA x11) bt Alison Riske (USA) 6-4, 4-6, 6-3
Barbora Strycova (CZE) bt Johanna Konta (GBR x19) 7-6 (7/5), 6-1
Elina Svitolina (UKR x8) bt Karolina Muchova (CZE) 7-5, 6-4
Simona Halep (ROM x7) bt Zhang Shuai (CHN) 7-6 (7/4), 6-1
Wimbledon women's singles semi-finals line-up (x denotes seeded player):
Serena Williams (USA x11) v Barbora Strycova (CZE)
Elina Svitolina (UKR x8) v Simona Halep (ROM x7)