The top-ranked Williams overcame a stiff challenge in the first set from the 62nd-ranked Czech player, then pulled away for a 7-6 (5), 6-2 victory.
Williams is now one win away from her fourth Wimbledon title and 13th Grand Slam championship.
She advanced to Saturday's final against 21st-seeded Russian Vera Zvonareva, who rallied to beat Tsvetana Pironkova 3-6, 6-3, 6-2 in the day's first match on Centre Court and reached her first major title match.
It's the 10th time in the last 11 years that at least one of the Williams sisters has advanced to the final. Venus and Serena have won eight titles.
Serena has never beaten anyone other than her older sister in the championship match. Serena defeated Venus in the 2002, 2003 and 2009 finals.
Serena has a 12-3 record in Grand Slam finals and will be heavily favored to beat Zvonareva. Williams has won five of their previous six matches.
"Vera's a great player who I had some unbelievable matches against her so she's really tough," Williams said. "I feel like I have nothing to lose going into the final and she doesn't either so it will be good."
Williams, who came into Thursday's match with a Wimbledon women's record of 73 aces, had only seven aces but came up with big serves when she needed them.
Kvitova, a lefthander playing in her first Grand Slam semifinal, went for broke and had more winners (24 to 19) than Williams but also more unforced errors (20 to 14).
"It definitely wasn't easy," Williams said after the 93-minute match. "I definitely had to work really hard. I didn't expect to get this far the way I started at the beginning of the tournament.
"I just felt off but I'm just happy to still be here. It's such a blessing to be able to still be in the tournament."
The 20-year-old Kvitova who had lost in the first round in the previous two Wimbledons pushed Williams to the limit in the first set, often controlling the play with her groundstrokes and pinning the champion behind the baseline.
Kvitova broke for 3-2, saved a break point in the next game and held to go up 4-2. But Williams broke back in the eighth game after Kvitova, holding a point for 5-3, missed three straight forehands to lose serve.
Williams went ahead 4-0 in the tiebreaker, let the lead slip to 4-3 and missed two set points before closing it out with a 115 mph (185 kph) service winner.
Williams was in command in the second set and broke twice. She finished the match with a backhand that hit the net cord and dropped over for a winner, then acknowledged the crowd with a wave and a small curtsy.
The match was highlighted by arguably the point of the tournament, a 19-stroke rally in the sixth game of the second set that left both players gasping for breath. The point featured great gets by both players, lobs, volleys and finally a forehand volley winner by Kvitova. Two points later, she double-faulted for the break.
"That was really exciting. Believe it or not, I even thought so," Williams said. "I thought if I could have won that rally it would have been an awesome fist pump."
Asked about her competitive edge in big matches, Williams said, "I don't know, maybe it's just because I'm a little crazy."
In the first match, Zvonareva came from a set down to beat the 82nd-ranked Bulgarian. The Russian was in complete command after breaking in the sixth game of the second set, winning 10 of the last 13 games.
Zvonareva has battled a reputation for fading in big matches but held her nerve on the biggest stage in tennis.
Zvonareva became the second-lowest ranked player to make the Wimbledon women's final. In the process, she prevented Pironkova from becoming the first ever unseeded women's singles finalist at the All England Club.
"I'm very excited. I think I'm not realizing it at the moment," said Zvonareva, who wore a towel over her head during changeovers to maintain concentration. "It was very tough out there. She's a very young player but a very, very tough opponent and she started so well. I'm happy with the way I was able to hang in the match and able to turn it around."
The 25-year-old Zvonareva's previous best showing in a Grand Slam was a semifinal appearance at the 2009 Australian Open.
Pironkova, who stunned five-time champion Venus Williams in the quarterfinals, seemed in control after breaking Zvonareva in the sixth game and taking the first set in 32 minutes.
But the matched turned around completely after the Russian converted on her first break point to go up 4-2 in the second set. She went to the net behind a forehand approach and put away a backhand winner for the break.
From the middle of the second set, Zvonareva dictated the pace and won six of seven games at one stage. She broke two more times in the third set and served out the match convincingly, finishing with an inside-out forehand winner.
Zvonareva had 31 winners and 13 unforced errors, while Pironkova had 23 winners and 16 errors.
Zvonareva has long been considered a top talent in the game, but someone who has failed to live up to her potential, even breaking into tears during matches.
"She was so emotional and would get down on herself, and now she seems like one of the most composed players on the WTA Tour," said former Wimbledon champion Lindsay Davenport. "For her it was a mental game, and so far it hasn't been a problem."
The men's semifinals are Friday, with second-seeded Rafael Nadal facing No. 4 Andy Murray, and No. 3 Novak Djokovic playing Tomas Berdych. Nadal leads Murray 7-3, while Djokovic is 2-0 against Berdych.
Missing from the semifinals for the first time since 2002 is six-time champion Roger Federer, who was beaten in four sets by Berdych in the quarters.