"I was fishing nearby with three mates when we heard a boat travelling at high speed and then there was a bang," fisherman Jayson Hoff said. "The speedboat had no lights on and must have been doing about 50km/h when it smashed straight into the back of the yacht.
"It then flew through the air and hit the wharf. If the wharf hadn't been there, the boat would have taken out me and my mates."
The night-time incident left one person with severe injuries, two with moderate injuries and one with minor injuries, according to a St John spokeswoman.
Hoff said a family, including two children, had been sleeping on the yacht when the speedboat smashed into it.
"We heard a woman screaming and we broke through a gate to try to help," he said. "The people on the yacht were already getting the man and the injured woman out of the water.
"The woman on the speedboat had her legs pretty smashed, had cuts and couldn't move. There also seemed to be something wrong with her back.
"I don't know why they guy driving the boat had no lights on and was going so fast in the dark. As the boat was sinking, all he kept shouting about was that he hoped his insurance would cover it."
Local resident David Cox went to inspect the scene shortly after the accident. "Some people who were fishing said they saw a small speedboat going in Upper Harbour between Greenhithe and Herald Island at a rate of knots," Cox said. One fisherman estimated the boat was travelling around 20 knots.
The fishermen helped the two occupants of the boat out of the water.
Police, ambulance and coastguard attended the scene and police said they were investigating.