It happened at 4:00 p.m. at the intersection of 4th and Hayes Streets.
Police tell Action News officers were investigating suspected drug activity there and were preparing to arrest a man in a white Jeep Cherokee.
Police say the man put the vehicle in gear, backed into an undercover police vehicle, then drove forward, allegedly trying to run over an officer.
That officer opened fire, hitting the suspect three times.
The suspect, identifed by his mother as 26-year-old Stefon Trader, was taken to Crozer Chester Medical Center. Trader's family tells Action News he is in stable condition.
He has been charged with aggravated assault and other offenses.
The officer was not hurt. He has been placed on desk duty pending the outcome of the investigation, in accordance with standard police procedure.
Police say officers did find evidence in the Jeep relating to their original investigation.