A chartered jet carrying 143 people from the US military base in Cuba tried to land in a thunderstorm in north Florida and ended up in the river next to Naval Air Station Jacksonville.
Authorities said everyone on board emerged without critical injuries, climbing on to the wings to be rescued.
The Boeing 737 – arriving from Naval Station Guantanamo Bay, Cuba, with 136 passengers and seven crew on board – came to a stop in shallow water in St Johns River.
Everyone on board was alive and accounted for, Jacksonville Sheriff’s Office said, with 21 adults taken to local hospitals in good condition.
Marine units from the sheriff’s department and Jacksonville Fire Rescue along with first responders from the naval air station helped passengers and crew to safety.
Captain Michael Connor, commanding officer of NAS Jacksonville, said those on board were a mix of civilian and military personnel, and that while some were staying in the area, others planned to fly on to other parts of the country.
“I think it is a miracle,” he said. “We could be talking about a different story this evening.”
Several pets were on the plane and their status was not immediately clear. A navy statement early on Saturday offered “hearts and prayers” to their owners, and said safety issues prevented rescuers from immediately retrieving the animals.
It was not clear what went wrong. Boeing said on Friday night that it was “aware of an incident in Jacksonville and are gathering information”.
The Federal Aviation Administration was referring media inquiries to NAS Jacksonville. Air station officials said investigators from the National Transportation Safety Board have been dispatched to determine what happened.
A photo posted by deputies shows a Miami Air International logo on the plane.
It was not known how long it would take to remove the plane from the river, but Mr Connor said the landing gear appeared to be resting on the river bed, making it unlikely that the aircraft would float away.
He said crews began working to contain any jet fuel leaks almost immediately after securing the passengers’ safety.
Jacksonville Fire and Rescue Department posted on Twitter that approximately 90 personnel responded to the scene, adding that the department’s special operations team had trained with marine units for a similar incident earlier on Friday.
Navy security and emergency response personnel were also on the scene, the navy release said.