Police said the woman had requested an Uber early Thursday morning to take her to the area of University Avenue and Marsland Drive, but when she arrived she reported being sexually assaulted by the driver.
The victim was able to break free and run to safety.
She was treated in hospital for injuries she sustained during the incident.
Officers arrested the Waterloo man on Friday. He is charged with sexual assault causing bodily harm, forcible confinement and uttering threats.