Serena Williams passed her toughest test so far at the US Open to beat Karolina Pliskova and reach the semi-finals for a ninth consecutive time.
Williams seeded 17th, trailed 4-2 in the first set but hit back to win 6-4 6-3 against the Czech eighth seed.
The American, 36, is seeking her first Grand Slam trophy since giving birth to daughter Olympia last September.
If she wins it would be her 24th major title – equalling Australian Margaret Court’s all-time record.
“I don’t think I have another 10 years of having opportunities to be able to play and win championships,” said former world number one Williams.
“Every match really means a lot to me. I kind of go out there and I just do the best that I can.”
Williams faces Latvia’s 19th seed Anastasija Sevastova, who knocked out American defending champion Sloane Stephens earlier on Tuesday, in the last four on Thursday.
Six-time champion Williams has reached the semi-finals in her past nine appearances at Flushing Meadows, although missed the tournament in 2010 with a foot injury and last year because she was pregnant.
Williams is only playing her eighth tournament since becoming a mother but had only dropped one set – in her last-16 match against Estonia’s Kaia Kanepi – on her way to the last eight.
However, having lost to Angelique Kerber in the Wimbledon final, there were question marks how she would fare against another high-calibre player.
After a slow start against the big-serving former number one, Williams grew into the match as she responded to some vociferous backing from Arthur Ashe Stadium.
The six-time US Open champion won eight games in a row – four at the end of the first and four at the start of the second – to help her secure victory in one hour 26 minutes.
It was her first win over a top-10 ranked player since beating Britain’s Johanna Konta at the 2017 Australian Open.
“I feel like I’m at a level where I can play and try to compete against these amazing women in the top 10,” said Williams, who had lost her three previous matches against top-10 players.