The 19-year-old victim, who works as a waitress in a hotel in the centre of town, was attacked as she was waiting at a bus stop on her way home on via di Roccia Cencia in the Casilino area of Rome.
The 37-year-old man allegedly approached the woman and asked her how much she charged for sex, Rome daily Il Messaggero reported. She explained that she was not a prostitute and moved away from him.
Apparently not discouraged, the man proceeded to grope her and forced her to move to a secluded spot nearby.
She managed to fight back and escape back to the main road where she was spotted by some friends who happened to be driving through.
A witness standing by the traffic lights then phoned police who arrived within minutes. The woman gave a description of the man, who was arrested shortly after. Police have charged him with sexual assault.
According to crime stats from the UN Office on Drugs and Crime, Italy had a relatively low incidence of rape, with 7.6 cases of recorded rape per 100,000 people in 2012, the last year for which comparisons are available. The EU average is 10 cases per 100,000.