Another boy, 11, was taken to hospital with “life-threatening injuries”, firefighters said.
The man and the younger child had also been taken to hospital, but they were pronounced dead.
The blaze began at about 6.30pm on Wednesday in Penistone, near Barnsley.
South Yorkshire Fire and Rescue told ITV News: “On arrival (the firefighters) found a fully-developed fire throughout the house and rescued three people from the property.
“Sadly, despite the best efforts of fire crews, a 44-year-old man and a nine-year-old boy died in this incident.
“An 11-year-old boy is in hospital suffering from life-threatening injuries.”
An investigation into the cause of the fire has begun.