Neighbor Elaine Huntley saw the 9-year-old boy run from a burning shed Saturday afternoon.
"There was a real loud noise, and we heard a lot of screaming," Huntley said. "We looked back, and we could tell there was smoke coming out the back, and we saw the child's pants burning."
Neighbors rushed to snuff out the flames on the boy's body.
Firefighters from the Garner Volunteer Fire Department doused the shed with water. In the smoldering remains, they found evidence that the boy and his friend were playing with matches.
"Kids playing with matches is not acceptable, especially around flammable liquids," said firefighter Tommy Mitchell. "That's the result you get."
Fire officials say they found several cans of gas and paint in the shed.
Fire Captain Steve Williams said other parents can prevent this kind of tragedy by just keeping flammables in a safe place.
"Keep them off the ground, on shelves out of reach of kids," Williams said. "Kids are curious. Containers need to be properly marked so they know what it is."
Authorities have not released the boy's name. He was flown to UNC Hospitals with second-degree burns over 80 percent of his body.