Investigators say the officer was wounded about 12:45 on Tuesday morning along the 6800 block of Musgrave Street in the East Mount Airy section of the city.
The officer was taken to Einstein Medical Center where he is listed in stable condition with a gunshot wound to the upper thigh.
Police say he has given investigators crucial information on the man who shot him.
Officers say the gunman drove off in either a silver or tan Nissan Maxima with rear-end damage.
The officer's name has not been released, pending notification of his relatives.
Police say the suspect is in his 20s, and was wearing a black shirt.