A battle-tested Serena Williams booked her spot in the semi-finals of the Toronto Cup on Friday after overcoming a sluggish start to grind out a 4-6 6-3 6-2 win over Czech Lucie Safarova.
Williams, whose 11-month layoff with injury and health problems ended in June, was a shadow of herself in the first set but rallied with raw power and shot-making to wrap up the match without losing serve in the last two sets.
"I could have had a better chance in the first set but I lost some key points," Williams, who won the Stanford Classic last month and is on a nine-match winning streak, told reporters.
"It was all about maybe one or two points here that would've made a difference and some silly double faults that didn't make sense."
The third set went with serve until Williams broke world number 32 Safarova in an intense fifth game in which she unleashed several loud screams to get herself going.
The vocal strategy seemed to pay off as she wrapped up the match without conceding another game.
The former world number one, unseeded here because of her long layoff, faces her toughest test yet against Belarusian Victoria Azarenka, who has not lost a set en route to the semi-finals and is the highest seeded player left in the draw.
Azarenka ended Kazakh qualifier Galina Voskoboeva's surprise run with a clinical 6-1 6-2 victory.
On the other side of the draw, 10th seed Samantha Stosur booked her ticket to the semi-finals with a fuss-free 6-4 6-1 win over Italy's Roberta Vinci in their first meeting.
The 27-year-old Australian, who dropped out of the top 10 this week for the first time in over a year, fired five aces and held serve throughout the match to overpower the Italian, who relied on backhand slice and moving the ball around the court.
"I knew going into the match that she obviously has a different style, and you know, I kind of thought I knew the way she was was gonna try and play against me, and I was prepared for that," said Stosur, her country's top-ranked player.
The Australian will meet in-form Pole Agnieszka Radwanska for a place in the final. Radwanska won the San Diego Open last week and extended her winning streak to nine with a 6-4 6-3 win over German Andrea Petkovic.