The Japanese 2018 US Open champion brushed aside the 27-year-old American 6-3, 6-4, at Arthur Ashe Stadium.
Osaka, 22, will play 28th-seeded American Jennifer Brady on Thursday for a place in the final.
Despite going into the last-eight match as favourite, the world No 9 Osaka said she was apprehensive about playing the 93rd-ranked Rogers because she had failed to beat her in three previous outings.
“Honestly, I just felt like she had the upper hand because I’ve never beaten her,” Osaka said.
“And those memories are stuck in my head so I consider this a little bit of revenge,” she added.
Osaka said a defeat to Rogers in 2017 on clay in Charleston had left “a really bad aftertaste in my mouth”.
“I’m really glad I was able to have a positive attitude today,” she explained.
Brady, 25, earlier ousted 23rd seed Yulia Putintseva of Kazakhstan 6-3, 6-2.
Osaka, of Haitian and Japanese heritage, walked onto the court wearing a facemask emblazoned with the name of George Floyd, the unarmed black man whose death in police custody in May sparked nationwide protests.
The 2019 Australian Open champion is wearing different masks honouring victims of racial injustice and police brutality throughout the tournament.
She has already donned face coverings bearing the names of Breonna Taylor, Elijah McClain, Ahmaud Arbery and Trayvon Martin.