It was caused by excessive discharge of cadmium from a state-owned smelter in the city of Shaoguan into the Bei River in Guangdong province, they said. In the city of 500,000 people, water was shut off for most of Tuesday, residents said. Downstream, people were warned not to drink tap water.
Cadmium levels in the river are currently 10 times above safety levels. China is still recovering from a chemical spill in November that left millions without water for days in the north-east. The massive leak of toxic benzene was caused by an explosion at a chemical plant.
The first traces of benzene are expected to reach Russia's border city of Khabarovsk shortly. The BBC correspondent in Beijing says the two incidents highlight the scant regard that Chinese industries have for environmental protection and safety standards.
The city of Yingde was on high alert following the latest spill at the smelter in Shaoguan, some 90km (55 miles) upstream, China's Xinhua news agency said.
Officials lowered a dam gate to block the spill from entering Yingde which has a population of about 100,000. Residents were now being warned not to drink tap water and supplies were being brought in by road, it said. The toxic stretch of water is expected to arrive in two or three days' time.
Local television said earlier that the smelter had been ordered to stop discharging water from Sunday. Cadmium is a chemical used in protective plating. It can cause liver and kidney damage and lead to bone diseases. Compounds containing cadmium are also carcinogenic.