Last updated on .From the section Tennis

Petra Kvitova, right, started 2018 at number 29 in the rankings

Petra Kvitova recovered from losing the first set to shock world number one Caroline Wozniacki and reach Sunday's Qatar Open final.

The Czech won 3-6 7-6 (7-3) 7-5 to earn her 12th successive win and set up a final against Spain's Garbine Muguruza.

It was the world number 21's third win over a top-10 player in Doha this week.

Kvitova, 27, who won in St Petersburg two weeks ago, is continuing her comeback following six months out after a knife attack at her home in 2016.

"I don't know what happened," she said. "I just came to play and I was crazy a little bit in my mind and I was playing it everywhere."

After losing the first set, Kvitova appeared set to become the latest player to lose to Australian Open champion Wozniacki during the 27-year-old's impressive start to the season.

However, she took the second set to a tie-break, then won six consecutive points to clinch it 7-3.

"At 3-1 down, I was just really angry with myself so I just tried to hit some winners. That's how that ended," she said.

Kvitova then edged the final set 7-5 to set up a meeting with Muguruza, who advanced after Simona Halep withdrew on Friday with a foot injury.

Wozniacki, who has reached finals in Melbourne and Auckland this season, had the consolation of becoming only the fourth woman to earn $30m in career prize money.

"I think we played both really well and I can take a lot out of that," the Dane said. "I just need to live and learn and try not to make the same mistake when I play her next time."