Socioeconomic differences in overweight are well documented, but most studies have only used one or two indicators of socioeconomic position (SEP). The aim of the present study was to explore the relative importance of indicators of SEP (occupation, education and income) in explaining variation in BMI and waist:hip ratio (WHR), and the mediating effect of work control and lifestyle factors (dietary patterns, smoking and physical activity). The Oslo Health Study, a cross-sectional study, was carried out in 2000–1, Oslo, Norway. Our sample included 9235 adult working Oslo citizens, who attended a health examination and filled in two complementary FFQ with < 20 % missing responses to food items. Four dietary patterns were identified through factor analysis, and were named ‘modern’, ‘Western’, ‘traditional’ and ‘sweet’. In multivariate models, BMI and WHR were inversely associated with education (P < 0·001/P < 0·001) and occupation (P = 0·002/P < 0·001), whereas there were no significant associations with income or the work control. The ‘modern’ (P < 0·001) and the ‘sweet’ (P < 0·001) dietary patterns and physical activity level (P < 0·001) were inversely associated, while the ‘Western’ dietary pattern (P < 0·001) was positively associated with both BMI and WHR. These lifestyle factors could not fully explain the socioeconomic differences in BMI or WHR. However, together with socioeconomic factors, they explained more of the variation in WHR among men (21 %) than among women (7 %).