Emergency crews responded shortly before 6 p.m. in the Brant Beach section of Long Beach Township.
New Jersey State Police say six people were aboard the vessel at the time of the crash.
Two people were ejected into the water upon impact. They were taken to the hospital in critical condition.
The other four occupants were transported to an area hospital with minor injuries.
Witnesses described hearing a loud impact and seeing emergency activity unfold near a marina at Bayview and West Goldsborough avenues.
"We heard a loud bang," one witness said.
Neighbors nearby "felt the vibration from it," according to another account.
Sean Stretch, who was nearby at the time of the crash, said he initially thought no one was on the vessel.
"I thought at first nobody was there, but there was a guy laying down on the floor and he was pretty lifeless," Stretch said.
Another witness, Ford Hansen, said he noticed people in the water before realizing a crash had occurred.
"I saw two people out there in the water by the channel marker, and I thought someone just swam out there. I wasn't sure," Hansen said. "Then I saw the boat actually turn back around, and I saw everyone running out on their docks and stuff. The boat was like trying to pick them up out of the water."
Video from the scene showed ambulances arriving and first responders launching onto the bay. Photos taken after the crash showed extensive damage to the bow of the vessel.
Residents said conditions on the water were foggy around the time of the crash.
"They're pretty well marked, but visibility wasn't great, though, today, especially around high tide. We had some weather coming through, so sometimes you get bogged down behind the fog," said Steve Helewa of Brant Beach, New Jersey.
The damaged boat will be towed from the marina as investigators continue working to determine what caused the crash.