The 39-year-old American, bidding for a record-equalling 24th Grand Slam title, won 6-3 6-3 against the Romanian.
“I think this is the best match I played this tournament,” said Williams, who moved well and hit 24 winners.
Earlier on Tuesday, Osaka cruised past Hsieh Su-wei in just 66 minutes to reach the last four.
The Japanese third seed, who won the second of her three Grand Slam titles at Melbourne Park in 2019, beat the Taiwanese 6-2 6-2.
Now Osaka will face Williams – a seven-time champion in Melbourne – on Thursday for a place in Saturday’s final.
It will the first meeting between the pair since their infamous 2018 US Open final.
That saw Osaka win her maiden major title after Williams accused umpire Carlos Ramos of being a “thief” in some of the most dramatic scenes at a Grand Slam final.
Osaka has had a difficult draw at Melbourne Park but the 23-year-old has dropped just one set en route to the last four.
She saved two match points to beat two-time major winner Garbine Muguruza in the quarter-finals and looked refreshed against Hseih.
After saving a break point in the opening game of the match, Osaka chased down Hseih’s slices and shots to take an early break in the first set.
She hit 24 winners, compared to 14 unforced errors, and amassed 12 break points on the Hseih serve, converting four.