Russian Dinara Safina won a great scrap with fifth seed Serena Williams 2-6, 6-1, 7-6 to end the American's 17-match winning streak and reach the German Open semi-finals on Friday.
Safina, a surprise winner over top seed Justine Henin on Thursday, made a nervous start but found her game in the second set, as Williams started to reel off unforced errors, and went on to claim another high profile victim in two hours 10 minutes.
"I didn't play well today, in no way whatsoever," a relaxed Williams told a news conference.
"I could tell you 50 things I could go out there and do better. But it's better to lose when you've played badly than when you've played well. I'm not going to dwell on this."
Safina, the 13th seed, looked set to blow her opponent off court as she levelled the match and went a break ahead at the start of the third.
The American broke back, though, and saved a break point at 4-4 with a brilliant back-hand pass to keep the match finely poised.
Safina then held her nerve to stay alive serving at 4-5 and 5-6 before taking the tiebreak 7-5 when a tired looking Williams put a forehand well wide on the second of two match points.
"That was one of the best matches of my life," Safina said. "The third set was tough but I was just enjoying myself so much. I knew I was doing everything right."
Safina now faces unseeded Victoria Azarenka of Belarus after she saw off the 15th seed Alona Bondarenko of Ukraine 7-6, 6-2.