Razzano, the Italian ranked No. 131 in the world, squandered four match points and had to stave off two match points from Kvitova in the third-set tiebreaker before Kvitova double-faulted to end the match at 3 hours, 35 minutes.
"I think I was nervous," Razzano said. "I'm human. I'm not a robot. Sometimes you feel stress. I tried to focus on the points."
The match was the second longest on the WTA Tour this year behind one between Bethanie Mattek-Sands and Anastasia Rodionova that lasted 3:42 at Charleston in April.
Razzano will face fifth-seeded Sam Stosur of Australia, a 7-5, 2-6, 6-3 winner over second-seeded Agnieszka Radwanska of Poland.
In the other quarterfinals, top-seeded Victoria Azarenka of Belarus routed Poland's Urszula Radwanska 6-1, 6-2, and seventh-seeded Ana Ivanovic of Serbia beat fourth-seeded Roberta Vinci of Italy 6-1, 6-7 (1), 6-2.
In the second match of her doubles comeback on the WTA Tour, Martina Hingis and Slovak partner Daniela Hantuchova lost to Americans Raquel Kops-Jones and Abigail Spears, falling 4-6, 7-5, 10-3.
Hingis, the former top-ranked Swiss star, was playing her first WTA event in nearly six years.
Razzano's win over the seventh-ranked Kvitova was the Italian's first over a top-10 player since she handed then-No. 5 Serena Williams her first opening-round loss in Grand Slam event at the 2012 French Open.
After winning a tight second set, Razzano was serving at 5-3 in the third set when she wasted three match points on two hitting errors and a double fault.
"In my head, I never lost," Razzano said. "I stayed positive and never thought I could lose."
In the third-set tiebreaker, Kvitova jumped out in front 5-2 before Razzano battled back to even the score. Razzano saved one match point when Kvitova committed an unforced error, then dropped her fourth match point at 7-6. After another unforced error by Kvitova on the Czech's second match point, Razzano hit a forehand winner to set up match point No. 5, which ended with Kvitova's eighth double fault.