Williams, hampered for two seasons by injuries and an autoimmune disease, will play Monica Niculescu of Romania in the final on Sunday.
While Niculescu has yet to win her first WTA title at 25, Williams has won 43 singles titles overall, including seven at Grand Slams. Her last was in February 2010 in Acapulco.
Petkovic, ranked 182nd, kept up with Williams until 4-4 in the final set. Then she dropped her serve and Williams, ranked 41st, closed out the match in 2 hours, 38 minutes.
Niculescu, ranked 70th, reached her second straight Luxembourg Open final by beating Daniela Hantuchova of Slovakia, 6-1, 6-3.