Understanding how weather impacts health is critical, especially under a changing climate; however, relatively few studies have investigated subtropical regions. We examined how mortality in São Paulo, Brazil is affected by cold, heat, and heat waves over 14.5 years (1996-2010). We used over-dispersed generalized linear modeling to estimate heat- and cold-related mortality, and Bayesian hierarchical modeling to estimate overall effects and modification by heat wave characteristics (intensity, duration, and timing in season). Stratified analyses were performed by cause of death and individual characteristics (sex, age, education, marital status, and place of death). Cold effects on mortality appeared higher than heat effects in this subtropical city with moderate climatic conditions. Heat was associated with respiratory mortality and cold with cardiovascular mortality. Risk of total mortality was 6.1% (95% confidence interval 4.7, 7.6%) higher at the 99th percentile of temperature than the 90th percentile (heat effect) and 8.6% (6.2, 11.1%) higher at the 1st compared to the 10th percentile (cold effect). Risks were higher for females and those with no education for heat effect, and males for cold effect. Older persons, widows, and non-hospital deaths had higher mortality risks for heat and cold. Mortality during heat waves was higher than on non-heat wave days for total, cardiovascular, and respiratory mortality. Our findings indicate that mortality in São Paulo is associated with both cold and heat and that some subpopulations are more vulnerable.