"It was supposed to land but instead of landing it was 150 yards short and she went down," Jimmy Emilio, general manager of Chuuk Airport at Weno in Micronesia, told Reuters by telephone.
"We don't really know what happened ... people were rescued by boats - 36 passengers and 11 crew were all rescued, only the plane is sinking right now," he said.
The Boeing 737-800 aircraft hit the lagoon surrounding the small island about 9.30 a.m. local time (2330 GMT Thursday), Emilio said. The passengers and crew were taken to hospital but no serious injuries were reported.
"I thought we landed hard until I looked over and saw a hole in the side of the plane and water was coming in," passenger Bill Jaynes said in a video posted by the Pacific Daily News website.
"I thought, well, this is not like the way it's supposed to happen," he said. Water was waist-deep in the cabin before rescuers arrived, he said.
Video published online by Radio New Zealand and pictures posted on Twitter showed the half-submerged aircraft surrounded by small speedboats.
Air Niugini said in a statement the airline is "making all efforts" to look after the passengers and crew.
A spokesman for Papua New Guinea's Accident Investigation Commission said investigators would fly to the scene as soon as possible to piece together what happened.
In 2013, all 101 passengers aboard a Lion Air flight that overshot the runway at Denpasar in Indonesia and landed in shallow water were similarly rescued by boats without casualties.
(Reporting by Tom Westbrook; Editing by Paul Tait and Michael Perry)