As the largest Chinese city by population and the largest city proper by population in the world, Shanghai has frequently suffered the heavy haze in recent years. In this study, the observational data (PM2.5, PM10, O3, NO2, CO and SO2) at the ten urban monitoring stations in Shanghai from November 25 to December 9, 2013, were used to analyze the haze pollution. The source contributions of PM2.5 in Shanghai were identified by trajectory clustering and hybrid receptor models (potential source contribution function (PSCF) and concentration weighted trajectory (CWT)). The results showed that for the whole study period, the ranges of pollutant concentrations are 2.0–635.0 µg m–3 (PM2.5), 2.0–726.0 µg m–3 (PM10), 1.0–139.0 µg m–3 (O3), 11.0–197.0 µg m–3 (SO2), 7.0–221.0 µg m–3 (NO2), and 0.3–8.5 mg m–3 (CO). It was found that PM2.5 contributed more than 80% of PM10 for the whole period except the relatively clean period in which only 45% of PM10 is PM2.5. The model analyses show that clean air masses reaching at Shanghai were from the far away regions like Mongolia and Inner Mongolia with the high mean wind speed (fast air masses). On the other hand, the heavy haze air masses were mainly from the nearby industrialized and urbanized provinces with industrial cities. It was found that the formation of the extremely heavy haze from December 5 to 7 in Shanghai was mainly because of the air pollution transported from the nearby provinces (i.e., Anhui, Jiangsu, Zhejiang) and central part provinces (such as Shandong, Hebei) of eastern China. The correlation analyses among PM2.5 and other pollutants show that the PM2.5 formation in Shanghai is affected by the sources similar to those of CO such as combustion, industry, mobile and oxidation of hydrocarbons. Finally, the controlling strategies are discussed on the basis of this result.