It happened around midnight on the 900 block of South 57th Street.
Police tell Action News an officer tried to stop 30-year-old Juan Torres because he fit the description of a robbery suspect.
When the officer approached, police say Torres took out a gun and fired.
The officer returned fire, hitting Torres in the leg.
"We were very lucky for police that there were no injuries to police. Shots were fired at the officer at point blank range, so we feel very fortunate that the officer wasn't injured, and that the suspect who fired the shots at the officer is in custody," said Chief Inspector Scott Small.
Torres is in stable condition, and remains in police custody at the hospital.