The 81st-ranked Pera, who won her first WTA title in Budapest last week, saved three of the four break points she faced and took four of the six she created to beat Kontaveit, the world No. 2.
It was Pera's 12th straight victory going back to the Budapest qualifiers after losing her previous five matches. The 27-year-old Pera defeated Aleksandra Krunic of Serbia in the Budapest final Sunday.
Kontaveit was playing in her 16th career final and her first since February, when she lost to Iga Swiatek in Doha. She had been going for her seventh singles title.
But Pera avenged her loss to Kontaveit in their only previous meeting, 7-5, 6-1 in the first round at Wimbledon in June.
Alcaraz aims to improve his 5-0 record in finals and can win his fifth title this year alone after wins in Madrid, Barcelona, Miami and Rio de Janeiro.
Musetti is bidding for his first title in Sunday's final.