In set two, Williams improved her serve and overall shot execution to break serve twice more and race to a 5-0 lead.
With Petkovic serving to stay in the match at 15 all, Williams struck an inside out forehand down the line winner to reach 15-30.
Petkovic then hit a forehand down the line long to fall behind 15-40 and face match point.
A crosscourt forehand hit long from the German ended the match after 1 hour and 17 minutes.
Williams did not lose serve for the day and won the last eight games of the match.
The American finished the match with 24 winners including six aces to 15 unforced errors.
However Petkovic had managed to win only 10 points in set two.
In Sunday’s final, Williams takes on the 3rd seeded Angelique Kerber of Germany.