The two players had only met once before in Australia's Gold Coast tournament three years ago in a match that saw the Czech left-hander triumph in straight sets.
Twenty-three-year-old Safarova picked up where she left off in her quarter-final on Friday, producing some emphatic baseline returns despite carrying an injury to her right thigh.
There was little to separate the two players in the first set with both holding their serve throughout.
It took until the tenth game for Pennetta to make the breakthrough when she rattled an ace down the middle of the court to take the first set 4-6 inside 40 minutes.
But the pressure started to tell in the second set that saw five successive breaks of serve.
Safarova raced into a 3-1 lead, only for Pennetta to break back in the fifth game and make the score 3-2.
But the 27-year-old Italian lost her concentration on a crucial break point in the fourth game, allowing the Czech to bring the score the 4-2 and hold her serve to the second 6-3 with two set points.
Pennetta never recovered as Safarova powered her way through to win the third and final set, winning 82 percent of the points from her first service.
Safarova, a finalist here in 2007, will now play the winner of Saturday's other semi-final between top seed and world number seven Elena Dementieva and unseeded American teenager Melanie Oudin.