It all started just after midnight on Monday, when the officer pulled over the SUV for a traffic violation.
While the officer stood next to the vehicle at 28th and Northeast Boulevard, the driver sped off.
The officer got caught on the SUV and it dragged him down the street for about 50 feet.
He managed to pull out his gun and fire three times at the driver, but did not hit him.
After getting freed from the SUV, the officer radioed for backup.
Officers found the SUV a few blocks down the road at 34th and Monroe streets.
The driver was not in it. He had made a run for it.
Police used a K-9 unit to track down the suspect.
He's now in jail facing a long list of charges.
The officer is being treated at Christiana Hospital for neck and jaw injuries, but he's expected to recover.
You can get the latest crime statistics from the Philadelphia Police by CLICKING HERE for the force's crime data mapping site.