The third seed from Denmark, looking for her second WTA title in a month after winning the Korea Open, will now take on unseeded Swede Sofia Arvidsson in Saturday's semi-finals.
"It was a very good match today as both of us played very well," said Wozniacki, 22.
"The difference at the end was that I could just keep my highest level up and I managed to win the most important points, especially at the beginning of the third set."
Arvidsson eased past seventh seed Maria Kirilenko 6-3 6-3, knocking out the last remaining Russian in both the men's and women's singles of the Moscow indoor event.
Kirilenko's exit was a blow to the organisers, who had hoped for bigger crowds at the weekend after the spacious Olympic arena was nearly empty for the first four days of the tournament. The attendance was slightly better on Friday.
The second semi-final will pit Australian top seed Samantha Stosur against fourth-seeded Serbian Ana Ivanovic.
Stosur dismissed unseeded Czech Klara Zakopalova 6-1 6-3 while former world number one Ivanovic was just as ruthless against 160th-ranked compatriot Vesna Dolonc 6-4 6-1.
"I expect a tough match against Ana," said Stosur, the 2011 US Open champion. "You have to be ready for long rallies."
At WTA Luxembourg, top seed Roberta Vinci was beaten by Venus Williams 7-6(2) 6-4. Williams will play Andrea Petkovic in the semi-finals, with the other semi-final to be contested between Daniela Hantuchova and Monica Niculescu.
- - -
WTA Moscow results
1-Samantha Stosur (Australia) beat Klara Zakopalova (Czech Republic) 6-1 6-3
3-Caroline Wozniacki (Denmark) beat 5-Dominika Cibulkova (Slovakia) 6-2 6-7(1) 6-1
4-Ana Ivanovic (Serbia) beat Vesna Dolonc (Serbia) 6-4 6-1
Sofia Arvidsson (Sweden) beat 7-Maria Kirilenko (Russia) 6-3 6-3
Venus Williams (USA) beat 1-Roberta Vinci 7-6(2) 6-4
Andrea Petkovic (Germany) beat Ksenia Pervak (Kazakhstan) 6-3 6-2
Daniela Hantuchova (Slovakia) beat Lourdes Dominguez Lino (Spain) 7-5 6-0
Monica Niculescu (Romania) beat Lucie Hradecka (Czech Republic) 6-0 6-4