Dwayne Towns, 51, faces felony counts of aggravated criminal sexual assault with a firearm and kidnapping.
Police said Towns got into the 21-year old victim's car and drove to the 12000-block of South Morgan, where he sexually assaulted her at gunpoint.
Police said Towns was identified through DNA and a lineup.
He is due in court on January 21.