The study aimed to investigate the relationship between smoking and BMI, from the perspective of the roles of alcohol drinking and dietary factors in a rural population. We analysed cross-sectional data from 10,837 middle-aged and elderly Chinese rural adults who completed a questionnaire that included questions on demographic characteristics, dietary intake, and detailed smoking and drinking status. Results showed that current smokers had lower BMI and consumed foods less frequently (except coriander, onion, garlic, hawthorn and fermented bean curd) than non-smokers. The relationship between smoking amount and the risk of overweight or obesity was U-shaped, and the trends were also similar by stratum of baseline age groups (all p for interaction < 0.001). Heavy smokers tended to have drinking habits, which was associated with increased BMI (all p for trend < 0.001). Additionally, despite the lower risk of overweight or obesity for current smokers, normal weight individuals were found to have the minimum smoking amount. In conclusion, smoking may cause suppression of appetite but smokers tend to have other unhealthy habits relating to increased BMI. Dietary factors and alcohol use play important roles in the U-shaped relationship between smoking behaviours and BMI in the middle-aged and elderly Chinese rural population.