It happened around 1:30 p.m. in the 4500 block of Worth Street.
Police say the 45-year-old man was doing work on a roof when he fell about 30 feet through the skylight on the roof of the building.
He was taken to Aria Hospital-Torresdale in critical condition.
The incident is under investigation.