The violent struggle began just before 4:00 p.m. on the 6500 block of Castor Avenue.
Police say a 2nd district foot patrol officer witnessed a strong armed robbery in action.
When he intervened, the suspect punched him several times in the face.
"The officer pulled his Taser and Tased the suspect two times using two separate Taser cartridges. This had no effect on the suspect," Philadelphia Police Chief Inspector Scott Small said.
Detectives say the suspect ran off with a stolen phone and a wad of cash. The officer gave chase.
"The suspect then picked up the officer and body-slammed him, slammed him violently onto the concrete where the officer struck his head," Small said.
Appliance store owner Fred Singer says his employee witnessed what happened after the suspect was Tasered for a second time.
"The cop took out his gun and told him to get on the ground and he refused and the cop shot him," Singer said.
The suspect who hasn't been named died at Aria Torresdale Hospital.
The officer, a 17-year veteran of the force, was taken to Albert Einstein Medical Center.
He was assigned to the Castor business corridor about 6 months ago after a rash of robberies in the area.
"The community has been absolutely endeared to this officer's presence in making the whole community feel safer," Philadelphia Police Inspector Ben Naish said.
"He was just making sure that everyone was OK here and everyone was safe," business owner Salah Abdullah said.
Police say the 45-year-old male had 8 prior arrest for assaults, retail thefts, rape, harassment and PFA Violations.
The officer was transported to Albert Einstein Medical Center for injuries he sustained to his head. He is listed in stable condition.
The officer will be placed on administrative duty pending the outcome of the investigation.