A 19th District Officer was called to the 5100 block of Jefferson Street shortly before 8:00 p.m. for the report of a man with a gun.
Upon arrival, the officer observed the suspect at a mini-market at the location.
The policeman and several other officers stopped the suspect and began struggling with him.
Police say the suspect punched an officer in the face and then pulled out a handgun from his pants pocket.
The suspect then pointed the handgun at the officers.
At that time, an officer discharged his service weapon one time, striking the suspect in the abdomen.
The suspect was transported to the Hospital of the University of Pennsylvania by police in critical condition.
The suspect's knife and a Taurus 9mm semi-auto handgun was recovered by police.
The officer who was punched by the suspect suffered minor injuries.
There were no injuries to other police officers or civilians.
The officer involved in the shooting will be placed on administrative duty pending the investigation.