The earthquake struck at 9:10 a.m. (0110 GMT) toppling homes and sending large rocks tumbling down onto residential areas in and around Yunnan province's Yanjin county, the official Xinhua News Agency said.
Liu Tengfei, a senior high school student from Yanjin's Dousha town, said he was watching television at a friend's house when the temblor hit.
"The house was shaking and then a clock on the wall fell down and broke, so we ran out into the street," Liu said by telephone. He said that many buildings in the area were left with bad cracks and officials had ordered people to sleep outdoors Saturday night, fearing the houses might not be stable.
A Dousha government official, Chen Hua, said that at least five aftershocks followed the earthquake, the largest with a magnitude of 2.1.
Chinese central television showed roads in Yanjin blocked by landslides, a car crushed under fallen rocks and several single-story homes with tiled roofs that had completely collapsed. Villagers were huddled under umbrellas and makeshift tents to keep away from the sun.
Xinhua said some 500 tents, 1,000 quilts and 500 blankets had been sent to the area.
An official with the Yanjin county government who would only give his surname, Xiao, said rescuers had so far confirmed 16 dead and 60 injured in Yanjin. Xiao said about 100 houses were destroyed in the county and about 1,000 were damaged.
A man named Shen with the Zhaotong Seismological Bureau said three people were reported dead in nearby Daguan county. He had no figure for the number of injured there.
Shen, who would not give his full name, said the quake also damaged local railroad tracks, forcing officials to shut down service between Sichuan's Neijiang city and Yunnan's capital of Kunming.
Yanjin is about 1,100 miles southwest of Beijing and has a population of about 350,000, Xinhua said. Many of the injured were hospitalized and additional rescue teams were headed to the area, it said.