The 10-year-old German Shepherd jumped into the River Tees in Middlesborough.
But he was swept away by fast currents as he tried to swim to the other side.
Suddenly a seal appeared from the depths and gently pushed
the dog onto mudflats on the bank.
Two more seals watched from the river.
Chris Hinds, who saw the whole thing, said: "It was like a guardian angel."
The RSPCA's looking after the dog because no one knows who he belongs to.
They've called him Seamo after England goalie David Seaman, "because it was a great save".