Germany's Sebastian Brendel fought off the challenge of home favourite Isaquias Queiroz dos Santos to retain his Olympic canoe single 1,000m title.
The 28-year-old led for much of the race, but his Brazilian rival kept pace until the final 50 metres, when Brendel powered away to finish in three minutes 56.926 seconds.
Moldova's Serghei Tarnovschi won bronze.
Brendel set the world-record time of 3:44.578 in the event in 2014.
Subscribe to the BBC Sport newsletter to get our pick of news, features and video sent to your inbox.