Video clips on China's Twitter-like platform Weibo showed shoppers taking cover in a store as boxes flew off the shelves, while students in a classroom elsewhere scrambled to hide under their desks before covering their heads with textbooks.
The quake hit near the city of Zhaotong, which has a population of over six million, and registered 5.0-magnitude, according to China's government seismology authority.
Around 600 rescue workers have been sent to the disaster area, the Yunnan government said, including firefighters and soldiers from the local division of the People's Liberation Army.
Videos on social media showed rescue workers combing through rubble and streets littered with fallen tiles and concrete.
Residents could be seen stepping over debris as they left buildings, and trying to avoid rocks that had fallen on a road while riding a motorbike.