Objective: Following the adoption of food policies replacing unhealthy products by healthy foods in school, the present study tested the effectiveness of an intervention aimed at encouraging high-school students to stay in school for lunch instead of eating in fast-food restaurants. Design: A 12-week multi-strategy intervention targeting specific determinants of behaviour was evaluated via a quasi-experimental pre- and post-intervention design. A self-administered questionnaire was employed based on the theory of planned behaviour. Setting: An experimental (n 129) and a control school (n 112) in central Canada. Subjects: High-school students aged 12 to 17 years. Results: Compared with control school students, those in the experimental school significantly increased the mean number of days that they stayed in school for lunch (relative risk = 1.55; 95% CI 1.06, 2.27; P = 0.024), as well as the proportion who remained in school for lunch every day (relative risk = 1.21; 95% CI 1.04, 1.40; P = 0.014). Among the psychosocial variables targeted, only self-efficacy appeared to be influenced by the intervention, mainly because of a decline in control group values. Mediation analysis indicated a significant mediating effect of self-efficacy on the mean number of days that students stayed in school for lunch (bias-corrected and accelerated point estimate = 0.079; 95% CI 0.0059, 0.1958). Conclusions: These results suggest that interventions aimed at enhancing self-efficacy can successfully contribute to students staying in school during lunch time. Such interventions should be considered in obesity prevention programmes adapted to high-school students.