The world number four had to save break points having been taken to deuce four times before eventually holding serve at 4-3 in the third set against second seed Kvitova.
That game proved the pivotal one in a 6-2 3-6 6-4 victory over the Czech that swept Sharapova into her third final at Melbourne Park against Victoria Azarenka.
"You know, she had so many opportunities in that third set, and I just hung on," the 24-year-old said.
"There were so many games where it was 15-40, love-30 on my serve, and actually on those points ... I hit some really good second serves.
"I think she wanted to step in and maybe go for it, and I was smart about that."
The Russian needed all her experience against Kvitova, who beat her in last year's Wimbledon final, after the left-hander roared back into the match by taking the second set.
Neither woman was able to hold serve in the opener when playing into the wind, Sharapova converting all three of her break points, seizing a set lead after the Czech missed backhand.
"In the first set I felt like my pace hurt her a bit," Sharapova said. "I was just really aggressive. I didn't give her a chance to really step in and do what she does really well."
Kvitova relaxed in the second set and raced to a 3-0 lead and put three-times Grand Slam winner Sharapova under constant pressure on her serve.
The Czech set up a deciding set with an ace down the centre line and when she broke Sharapova for 2-1 she let out a loud yelp of celebration.
Her joy was short-lived, Sharapova broke back immediately and after weathering pressure in the fifth game and heavy fire in the crucial seventh, nosed ahead at 5-4.
Kvitova's game then fell apart when serving to stay in the match, double-faulting and then committing three unforced errors to gift-wrap Sharapova victory.
"In the whole third set she was serving quite well and I didn't feel like I had too many good looks on returns," Sharapova said.
Sharapova will now meet third seed Victoria Azarenka in the final on Saturday after the Belarusian earlier beat 2011 champion Kim Clijsters 6-4 1-6 6-3.