The 56-year-old, who was later found to have been drinking, fell off his boat off the shore of Bäch, news agencies said.
As he fell, he lent against the tiller, meaning the boat then started to turn in circles.
The man then had to dive under the water several times to avoid it hitting him.
He was finally rescued from his predicament when a member of the Schwyz lake police, who happened to be passing, was able to stop the boat.
As a video taken by a witness and published by newspaper Blick shows, the police officer was able to jump from his own vessel to the errant speedboat and bring it under control.
After failing an alcohol breath test, the man's boat licence was withdrawn immediately, said news agencies.
Swiss drink-driving laws also apply to people in charge of a boat or other recreational craft on an inland lake.
The blood alcohol limit for driving is 0.5mg/ml.