PHNOM PENH - A child and two gunmen were killed in a hostage drama at an international school in Cambodia yesterday.

Two of the masked hostage-takers were shot dead when police stormed the school in the northwestern town of Siem Reap.

The gunmen had seized dozens of young children from several countries - also including Australia, Japan and Italy - and demanded money, weapons and a vehicle before police ended the standoff, with witnesses reporting several shots fired.

The bandits killed the 3-year-old Canadian boy when authorities declined to meet all of their demands, and police then raided the building, Cambodian Information Minister Khieu Kanharith said, quoting the deputy national police chief, Neth Savoeun.

"They also threatened to kill the children one by one. Then our forces decided to storm the school," Khieu Kanharith said.

Siem Reap is Cambodia's tourism hub, near the famed Angkor Wat temples and home to many expatriates.

Photographer John McDermott said he heard gunshots and saw the kidnappers leaving the building and getting into a van before the children came running out of the school.

"The hostage drama is over. They [the kidnappers] have all been captured and have been hauled off," he told Macquarie Radio in Australia.

"It's pandemonium here at the moment.

"There's several thousand people around. Everyone has been hanging out here for the past couple of hours watching the situation unfold.

"They [the children] have all been released, all except the ones that may have been injured, but all the rest have been reunited with their families. Lots of tears of joy, I think."

Hostage-taking is not uncommon in Cambodia, which is still awash with weapons after decades of civil war, including the Khmer Rouge genocide of the 1970s.