Seventh seeded Belarusian Victoria Azarenka won 10 games in a row to beat Russia's Vera Zvonareva 4-6, 6-4, 6-0 and set up an Australian Open rematch with defending champion Serena Williams on Monday.
Azarenka played a memorable match with Williams in the fourth round of the 2009 tournament when she had the eventual champion on the ropes after winning the first set, only to be forced to retire through illness.
The Belarusian also lost to the world number one in the third round here in 2008.
But she will get a chance to make amends on Wednesday when she meets the American on the Rod Laver Arena for a place in the semi-finals.
Ninth seed Zvonareva went into the fourth round match as the favourite, having beaten Azarenka on all four previous meetings.
The two women were evenly matched, and know each other's games well, having swapped coaches at the end of last year.
And this knowledge of each other showed throughout the first set as the pair went shot for shot for almost an hour.
Azarenka looked the more likely to make the breakthrough, getting five break points on Zvonareva's serve, only for the Russian to save each one.
The set seemed certain to go to a tiebreak until at 5-4, Zvonareva took advantage of some loose play to break Azarenka and take the set.
Zvonareva took control early in the second, opening a 4-2 lead and serving to go to 5-2, but Azarenka refused to give in.
She broke Zvonareva, then surprisingly took complete control, winning the next 10 games to claim the match in two-and-a-half hours.
"I had to keep on fighting even when I was down," Azarenka said.
"I knew I could stay with her but I had to keep fighting and believe in myself."