Muguruza, a 20-year-old Venezuelan, reached her her second career WTA final with a 6-2, 6-3 waltz over Kazakhstan's Yaroslava Shvedova.
Her first appearance in a title match came last month in Hobart, where she downed Zakopalova.
She will again take on the Czech veteran after Zakopalova upended top-seeded Spaniard Carla Suarez Navarro 6-3, 3-6, 6-2 in Friday's other semifinal contest.
Zakopalova, who hasn't won a title since 2005, is coming off a runner-up finish last week in Rio de Janeiro.
Senate Democrats to pull all-nighter on climate change
Dennis Rodman pledges to end trips to North Korea