The objective of this study was to analyse the association between socioeconomic indicators and cardiovascular disease risk factors in adult residents of Rio de Janeiro city, Brazil. Data were obtained by direct interview and physical examination in a population-based cross-sectional study in the city of Rio de Janeiro, 1995–96. Subjects were selected by two-stage random sampling and information was collected on socioeconomic, anthropometric and demographic characteristics, as well as on existing risk factors for cardiovascular disease. An index to express the risk of cardiovascular disease (CVD) was built, based on the presence of two or more of the following risk factors: overweight (measured by the body mass index, BMI), fat location (measured by the waist–hip ratio index, WHR), smoking, hypertension, sedentary lifestyle and alcohol consumption. The association between this risk index and the socioeconomic variables level of schooling, per capita income and residence location (slum vs non-slum) was evaluated through logistic regression models that controlled for the age of the subjects. Two separate models were built, according to the gender of the subjects. Complete data were collected for 1413 males and 1866 females over the age of 20 years (82% of the intended sample). In the studied population, a considerable prevalence of risk for CVD was found: 42·2% among males and 65·4% among females. For males, the socioeconomic and demographic indicators retained in the logistic model were age (OR 1·01, 95% CI 1·00–1·01), level of schooling (1·77, 95% CI 1·39–2·26) and per capita income (OR 0·77, 95% CI 0·61–0·97). For females, the indicators retained were age (OR 1·02, 95% CI 1·01–1·02) and level of schooling (OR 2·26, 95% CI 1·84–2·77). The findings indicate that cardiovascular disease risk is already an alarming problem in the urban populations of developing countries, and that educational level is the most important socioeconomic factor associated with its presence.