The incident happened just before 10:30 a.m. in the area of 32nd and Tasker streets.
Witness David Purviance said he tried to help the officer.
"He was in bad shape. He had a nugget on his head," said Purviance. "His head was bad, cuts on his face."
Authorities say the officer was traveling on Tasker Street when he was struck by a stolen vehicle traveling southbound on 32nd Street.
"He got hit and thrown out of his seat into the passenger seat," added Purviance. "I went over to the police officer immediately and went to that door to make sure he was alright. I was literally right here when it happened."
Both vehicles sustained severe damage.
The officer was transported to Penn Presbyterian Medical Center and was listed in stable condition.
He was later released from the hospital around 1 p.m.
The driver of the stolen vehicle fled the scene on foot but was later apprehended, officials say.
So far, no weapons have been recovered from the stolen vehicle.