The 34-year-old from the Dominican Republic clocked 47.63, eight years after clinching the title in Athens with exactly the same time.
USA's Michael Tinsley took the silver in 47.91, a personal best, while favourite Javier Culson of Puerto Rico was third.
Sanchez, who became the oldest-ever winner of an Olympic Games sprint event, said: 'No-one expected this. A lot of people said I should retire but I stuck with it.
'They'll all be celebrating (in Dominican Republic) now.'