Child labour is widespread in developing countries, but its causes are debatable. Poverty is considered the primary reason, but many theoretical and empirical analyses show that other factors, such as lack of access to credit, poor school quality and labour market opportunities play equal or even greater roles in the decision to have children work. This study surveys the existing literature and, taking into account urban-rural divides, aims to shed light on the debate with empirical evidence from Nepal, Peru and Zimbabwe. It is found that while poverty drives child work and schooling in rural areas, it does not appear to significantly influence such decisions in urban areas. This suggests that policies such as trade sanctions or a ban on child labour in rural areas could have an adverse effect as child labour decisions in such areas are more likely a response to poverty and subsistence requirements. Similarly, improving access to credit has greater potential for alleviating child labour and enhancing school enrollment in rural than urban areas, particularly in Nepal and Zimbabwe. On the other hand, the availability of alternative childcare options appears to considerably decrease child labour and create conditions for higher school attendance rates in urban than in rural areas. Finally, evidence from all three countries indicates that efforts to bolster adult educational levels and wages will help curb the prevalence and intensity of child labour and improve the likelihood that children stay in school.