This study aimed to investigate the relationship between housing, demographic, socio-economic, social factors and health, in poor urban communities in Johannesburg, South Africa. Data were drawn from a survey of 1,427 households in Johannesburg. The outcome health variable was a composite measure of chronic ill-health. Housing variables included type of housing, tenure and access to services. Multivariate regression analysis assessed the relationship between housing and health, after adjustment for demographic, socio-economic and social factors. The prevalence of chronic health problems was 25.1% (95% CI 22.8-27.6%). Factors independently associated with the risk of chronic ill-health among household heads included older age (OR, 3.06 [2.37-3.95]), female gender (OR, 2.83 [2.01-3.97]), long-term residence (OR, 2.01 [1.10-3.67]), unemployment (OR, 0.49 [0.36-0.67]), and living in formal housing (OR, 0.66 [0.45-0.98]). The health of the household heads residing in informal housing was significantly better than in formal housing. Explanations for this counter-intuitive finding include the fact that the informal housing dwellers were younger and recent migrants (the 'healthy migrant' phenomenon). Policy implications of the results are identified.