The alleged incident occurred in broad daylight Friday afternoon.
WATCH: Authorities reveal new details in Bloomingdale kidnapping, sex assault
The victim had just finished shopping at the Bloomingdale Court Mall in the 300-block of West Army Trail Road when the suspect, 34-year-old Justin Dalcollo, allegedly forced her into her car at gunpoint around 3:30 p.m., DuPage County State's Attorney Robert Berlin said Monday.
Dalcollo forced the young woman to drive to a bank in nearby Glendale Heights and made her withdraw more than $300, Berlin said. He then ordered her to drive to several other locations before telling her to drive to the Grand Victoria Casino in Elgin.
Berlin said Delcollo forced the victim to drive to the top of the casino parking garage and park between two cars. He then allegedly told her to take off her clothes and sexually assaulted her. Berlin said Dalcollo held a gun to her the entire time.
The suspect then forced the young woman to drive to a convenience store in downtown Elgin, where Berlin said he ordered her to call a cab using her cell phone and used her money to pay for it.
After Dalcollo fled in the taxi, Berlin said the victim called her family and called police to report what happened to her before going to the hospital for treatment.
The cab dropped Dalcollo off in the area of West Roosevelt Road and South Clark Street in Chicago's South Loop, where he bought new clothes from Target. Berlin said "good old-fashioned police work" led to the suspect's arrest in that area a short time later. Police recovered a gun on Dalcollo matching a description the victim had given to investigators.
Dalcollo was charged Monday with aggravated criminal sexual assault with a firearm, fugitive from justice, two counts of aggravated kidnapping with a firearm and three counts of armed robbery with a firearm.
He appeared in bond court late Monday morning, where a judge denied bail.
In the prosecution's motion to deny bail, they said Dalcollo is a convicted sex offender who pleaded guilty to a fourth-degree sexual conduct felony in Ohio in 2015, for which he received ten months in prison. In 2017, he pleaded guilty to failure to register as a sex offender and was given probation, which he violated.
Dalcollo was on parole when the local crime occurred, but had removed the monitor from his ankle. He is now being held at DuPage County Jail.
"This was a vicious, violent attack on a completely innocent 21-year-old college student who was home for spring break. The fact that the victim was abducted in a public parking lot in broad daylight is incredibly aggravating," Berlin said.
"As a father and as a person in law enforcement for many years, to see a random act of violence like this is horrific. To see this stoic young lady, who was a tremendous witness for us, who went through a horrible situation, it's gratifying for all of us in law enforcement to bring this person to justice and make that arrest," said Frank Giammarese, director of public safety for the Bloomingdale Police Department.