The blast at Shanghai Pudong International Airport, the gleaming east Chinese city's main international airport, occurred at around 2:20 pm when a man threw a "homemade beer bottle explosive" to a check-in counter in Terminal 2, Xinhua news agency reported, citing a statement by the Shanghai Municipal Public Security Bureau.
After the explosion, the man took a knife from his backpack, cut his neck and then fell to the ground, police said.
Four passengers, including a Philippine national, were slightly injured by shards of glass and were being treated in hospital.
In an earlier report, the injured were said to include a 53-year-old Philippine man, as well as a 67-year-old man and a 64-year-old woman, both of whom are Chinese. They sustained injuries to their heads, hands and legs, doctors said.
More From This Section
An initial investigation has found evidence suggesting that the man's injury could have been self-induced, hinting he might have set off the blast.
The area was quickly cordoned off by authorities, who have launched an investigation into the incident.
Eyewitnesses said that passengers ran for safety after a loud bang rocked the hall.
"A beer bottle filled with white smoke rolled right by my feet. I was scared and ran at once," said an eyewitness.
Photos and video clips posted online showed dense grey smoke at the terminal, and paramilitary security forces rushing into the building. They also showed police keeping people away from the scene and abandoned luggage littering the floor.