The man, 54, started his inflatable raft in the Sacramento River on Wednesday and drifted downriver until his raft began to sink near Roe Island, the Coast Guard said.
He was able to communicate with his family via cell phone, but didn't know which island he was on.
The family contacted the Coast Guard at 9:19 a.m. Monday and provided information that helped the agency determine where the man was, the Coast Guard said.
The man told his family he could see naval vessels and hear reveille, the military bugle call, every morning, which led the Coast Guard to conclude he was north of the Concord Naval Weapons Station.
The Coast Guard also worked with the man's cell phone provider to triangulate his location.
A 25-foot boat was launched from Station Vallejo, and crews were able to find the man as he waved a red flag, the Coast Guard said.
He was taken to a pier in the Martinez Marina, where waiting emergency technicians determined the man was in stable condition.
The Coast Guard recommends boaters file a float plan before leaving -- even if it's just with family members or friends -- and carry lifejackets, a VHF-FM radio, flares, and survival gear.