The accident happened late on Sunday afternoon near Grandson, according to a cantonal press release.
The victim, a 57-year-old Japanese national living in the canton of Neuchâtel, was caught up in the current and carried 50 metres downriver.
An eyewitness alerted rescue services at around 3.50pm and two units of the Vaud police hurried to the scene, where they pulled the man unconscious from the water.
An ambulance team and doctor tried to resuscitate the victim, but the man was pronounced dead at the scene.
The man had apparently been walking his dog along the side of the river when he saw another person’s dog in the water. He jumped in and was sucked up by the current.
He was carried over a small drop and drifted unconscious for 50 metres.
The man’s dog is being cared for in an animal shelter. It’s not known what happened to the dog the victim was trying to rescue.
“We met here every Sunday afternoon. He (the victim) loved this spot,” a local resident told the newspaper 20 Minutes.
A similar accident happened at the same spot a year ago, the paper said.