The unseeded American, Melbourne Park champion in 2003 and 2005, edged a first set tiebreak and thwarted a late fightback from the 10th seed to win through in an hour and 46 minutes on Rod Laver Arena.
"She played some incredible points on match point, she reminded me a bit of myself," Williams said in a courtside interview after the Czech had saved five match points.
"I just tried to stay focused and calm. It was great. I'm excited (about the final) I have nothing to lose, I'm having a lot of fun. I'm back in the top twenty and that means so much."
Williams, the former world number one who stands at 81st in the rankings after a 2006 season blighted by injury, made a slow start on her first grand slam semi-final appearance since she won at Melbourne Park two years ago.
Vaidisova, a semi-finalist at Roland Garros last year, won Williams's opening service game with a crunching forehand winner and confidently held her own serve for a 2-0 lead.
But Williams soon found the pace and aggression that had seen off four seeds this week, and a nervy double fault from Vaidisova helped her level at 3-3.
NET CORD
A huge net cord gave the Czech another break for a 5-4 lead and she missed out on her only set point in the next game before she was broken herself after netting a loose backhand.
Williams edged ahead 6-5 courtesy of an ace and a confident hold from the Czech forced a tiebreak.
Williams raced into a 4-1 lead but at 5-2 served two double faults to give her opponent a chink of hope.
But an easy put-away, accompanied by a triumphant scream, gave Williams set point at 6-5 and she won it after 58 minutes when Vaidisova netted a high forehand.
Williams eased into a 5-1 lead in the second set and seemed on course for an easy victory, three double faults in game five from Vaidisova helping the American secure a double break.
But the Czech dug deep and saved four match points in game nine before holding to make Williams serve out for the match at 5-4.
Williams had used up all her Hawk-eye challenges when a wide forehand from Vaidisova on her fifth match point was called good, but the American made no mistake when she punched away a forehand volley to seal victory on match point number six.
She will play top seed Maria Sharapova of Russia or Belgian Kim Clijsters, the fourth seed, in Saturday's final.