The shooting happened just before 2 a.m. in the city's Parkside section on the 1100 block of North 41st Street.
Police say the 26-year-old victim was walking down the street when an unknown suspect opened fire, striking him 12 times.
He was taken to Penn Presbyterian Medical Center, where he is listed in stable condition.
Numerous shell casings were found at the scene, officials say.
So far, no arrests have been made.