The 24-year-old Pole, seeded third, rallied from 3-5 down in the opening set, winning four straight games as Rybakina faltered.
Świątek broke her opponent twice in the first set and secured a decisive break in the second to close out the match.
It was the 10th meeting between the pair, with Świątek now leading their head-to-head 6-4.
Świątek, who fell in the semi-finals in each of her two previous appearances in Cincinnati, will face either Italy’s Jasmine Paolini (7) or Russia’s Veronika Kudermetova in Tuesday’s final.
Elsewhere in the tournament, Poland’s Magda Linette (31) exited in the last 16, Magdalena Fręch (22) lost in the second round, and Katarzyna Kawa was eliminated in qualifying.
(ał)
Source: PAP