Japan's Ai Shibata delivered a sprint finish to steal the women's Olympic 800m freestyle title from French favourite Laure Manaudou.
Shibata reeled in Manaudou to edge her into the silver medal position with a time of eight minutes, 24.54 seconds in a thrilling race.
American Diana Munz also finished strongly to take the bronze medal.
GB's Rebecca Cooke stayed in contention but had to settle for fifth place - one better than Sydney four years ago.
"I wouldn't say anything has gone terribly wrong," said the 21-year-old from Crawley.
"I've enjoyed this more than Sydney, I came here for the right reasons and
that was to win a medal.
"I've prepared better than I have any other time but it hasn't worked out the way I wanted."
Cooke had dominated her semi-final to qualify second fastest but it was Manaudou who dictated the pace of the final.
But the French teenager, already the Olympic 400m freestyle champion, did not count on Shibata fighting back over the final 300m.
The 22-year-old went stroke for stroke with Manaudou to touch home first and give Japan their third swimming gold.