The 22-year-old top seed overcame her Czech opponent 7-6 (7-3) 6-1 to reach the last four.
Swiatek will face American world number seven Coco Gauff next.
The Pole, in her 72nd consecutive week at world number one, begins her US Open title defence at Flushing Meadows on 28 August.
Following her last-16 win over China’s Zheng Qinwen on Thursday, Swiatek called for an end to online abuse after she was criticised for dropping the first set.
Swiatek came from behind to progress against Zheng and was almost faced with the same challenge against Vondrousova as she trailed 5-3 in the opening set.
Vondrousova, 24, had not faced a break point until then but when serving for the set at 5-4 she hit two double faults before Swiatek broke her to love and then rallied to win the tie-break.
Four-time Grand Slam champion Swiatek then powered through the second set, breaking serve three times to reach her 10th semi-final of the year.
Vondrousova, who claimed a shock win at SW19 earlier this summer, was competing in her first WTA 1000 quarter-final in more than three years.
Swiatek will face Gauff in the semi-final after the American swept past 43rd-ranked Jasmine Paolini 6-4 6-0.
The 19-year-old needed just one hour and 12 minutes to overcome the Italian qualifier but has not won a set against Swiatek in seven matches, including their meeting in the 2022 French Open final.
Elsewhere in the last eight, the Czech Republic’s Karolina Muchova progressed past compatriot Marie Bouzkova who retired after just three games because of a thigh injury.
French Open runner-up Muchova will play Belarusian second seed Aryna Sabalenka for a place in the final.
Sabalenka beat Tunisia’s Ons Jabeur 7-5 6-3 in a repeat of their Wimbledon semi-final.