Safina, playing in her second tournament since the Australian Open because of back problems, lost to Alexandra Dulgheru of Romania 6-4, 6-7 (5), 6-1 at the Foro Italico.
Williams, who lost to Safina in the semifinals last year, had been sidelined with a knee problem since losing the Key Biscayne final.
The fourth-seeded American was in control against Schnyder, breaking the Swiss veteran six times.
The third-seeded Safina recovered from 4-0 behind to pull even at 4-all but lost the next two games and dropped the set. After taking the second set in a tiebreaker, Safina fell behind 5-0, and twice smashed her racket in frustration. She sent a forehand wide to give Dulgheru the match.
A former top-ranked player, Safina retired from the Australian Open in January with a lower back injury, and in her first tournament back — last week's Porsche Grand Prix — she lost in the quarterfinals to Shahar Peer.
In a later match, No. 1 Serena Williams was to play Timea Bacsinszky.