The first blast occurred at a bus stop near a hospital in downtown Kunming at 7:10 a.m. local time (23:10 GMT). The explosion killed two people and injured 10 others.
Another person died and four others were injured when a bomb exploded on a second bus, carrying 30 passengers, around an hour later at an intersection near the site of the first blast, the China News Service reported.
Unconfirmed reports said that there had also been a third explosion.
No one has claimed responsibility for the attacks.
According to the agency, Chinese police said that the attacks, which come just three weeks before the opening of the Beijing Olympics, were "sabotage."
Security has been tightened across the country at airports and train stations.