The week-old cocker spaniel's young owner, Daniel Blair, thought the puppy needed a wash after it got muddy playing in the garden, so he put it in the toilet and flushed it.
But his plan went disastrously wrong when the animal was swept away and became trapped in a waste pipe for nearly four hours.
Firefighters and animal welfare officers could not reach it, so Daniel's mother eventually called a plumber, who found the dog lying in a pipe about 20 meters away from their house in Northolt, west London.
Plumber Will Craig said he used a long rod to push the puppy to the nearest manhole cover, where it could be fished out to safety.
"I pushed him really slowly and watched the poor thing wriggling around," he said. "Eventually I pushed him far enough for the firemen to grab. Suddenly everyone started cheering. We couldn't believe he was still alive."
The dog -- which has been named Dyno after the plumbing firm which rescued it -- is now safe and well and back with the family.
Daniel has apologized, blaming his twin brother for getting the dog dirty and saying: "I had to give him a wash. I'm so, so sorry. I won't do it again."