Petra Kvitova overcame a mid-match blip to beat Tsvetana Pironkova and reach a second straight Wimbledon semi-final.
The Czech eighth seed looked on course for a routine win when she powered through the first set, only to squander a 4-1 lead in the second-set tie-break.
Both players made the last four in 2010 but Kvitova proved a class above her Bulgarian opponent in the decider to win 6-3 6-7 (5-7) 6-2 on Court One.
She will play Victoria Azarenka for a place in the final.
"I am so happy I'm through, I was so nervous," Kvitova told BBC Sport. "I started great at the beginning but I don't know what was in my mind in the second set.
"Sometimes you make some mistakes and mentally I was a little bit down, which was my problem. But I broke her in the first game of the third set, so that made it completely different.
"It is good that I was in the semi-finals last year - I have the experience and know how I was feeling. I'm so looking forward to my next match."
Play on all courts other than Centre was delayed by more than three and a half hours because of rain, but when it finally began Kvitova got off to a superb start.
The 21-year-old left-hander drew gasps from the crowd with three stunning forehand winners helping her break to love in game one, and she followed it up with a commanding hold to 15.
Pironkova, 23, cut a dejected figure after Kvitova struck again for 4-1 and a love hold made it 5-1 after 20 minutes.
The 32nd seed recovered one of the breaks when Kvitova found the net, put a backhand wide and drilled another beyond the baseline.
However, Kvitova hit straight back and a winning forehand return sealed the opening set in 30 minutes.
Pironkova won only four matches in 14 tour-level tournaments prior to Wimbledon - and and at this stage it was easy to understand why.
She looked far more relaxed at the start of the second set and drew two forehand errors from Kvitova to break in game five. But the Czech restored parity for 4-4 and the set eventually went to a tie-break.
After an unreturnable serve put Kvitova 4-1 ahead, a majestic lob helped Pironkova steal the momentum and she was gifted the set when Kvitova floated two backhands into the tramlines.
Kvitova seemed to regain her poise at the start of the decider, though, and a double fault from Pironkova on break point in game one gave her a timely boost.
She served her way out of trouble for 3-1 and made the decisive move in game seven with a delicately-sliced backhand for 5-2, before serving out with an ace.