The 32-year-old from Keighley, West Yorkshire, is being held after the child was pronounced dead in hospital.
Police were called by paramedics to a home in Harewood Road in Oakworth, Keighley, after reports that a four-year-old had died, police said.
The boy was taken to Airedale General Hospital where he was pronounced dead.
A murder investigation was launched by West Yorkshire Police’s Homicide and Major Enquiry Team.
The 32-year-old man was arrested at an address in the Ingrow area of Keighley.
A West Yorkshire Police spokesman said: “The man was arrested on suspicion of murder and is currently in police custody.
“Enquiries are ongoing and no further details are expected to be released today.”