A study of 6,500 participants in the 1970 British Birth Cohort Study found that 10-year-olds with lower self esteem tended to be fatter as adults.
The effect was particularly true for girls, researchers from King's College London reported.
Children had their weight and height measured by a nurse at the age of 10 and they self-reported when they were 30.
Their emotional states were also noted, the researchers reported in the journal BMC Medicine.
Professor David Collier, who led the research, said: "What's novel about this study is that obesity has been regarded as a medical metabolic disorder - what we've found is that emotional problems are a risk factor for obesity.
"This is not about people with deep psychological problems, all the anxiety and low self-esteem were within the normal range."
Another researcher, Andrew Ternouth, said: "While we cannot say that childhood emotional problems cause obesity in later life, we can certainly say they play a role, along with factors such as parental weight, diet and exercise.
"Strategies to promote the social and emotional aspects of learning, including the promotion of self-esteem, are central to a number of recent policy initiatives.
"Our findings suggest that approaches of this kind may carry positive benefits for physical health as well as for other aspects of children's development."
Dr Ian Campbell, of the charity, Weight Concern, said: "This study presents some disturbing evidence that, as we suspected, childhood psychological issues have an influence on future weight gain and health.
"The message here is that early intervention, in childhood, can be the key to combating adult obesity.
"That requires much more than health practitioners can deliver alone and needs greater alertness from parents, teachers, and anyone involved in the welfare of children."