Moonlight has won best picture at the Oscars – but only after Faye Dunaway initially announced La La Land had won.
Dunaway’s co-presenter Warren Beatty said “Emma Stone, La La Land” had been written in the envelope he was given.
The team from La La Land were in the middle of their acceptance speeches when the mistake was discovered.
Moonlight director Barry Jenkins said: “I don’t think my life could be changed any more dramatically than it has in the last 20 or 30 minutes.”
His coming-of-age film about a young gay black man also won adapted screenplay and best supporting actor.
La La Land won six Oscars including best actress for Emma Stone. Damien Chazelle, director of La La Land, became the youngest filmmaker to win a best director Oscar, at the age of 32.
Bonnie and Clyde stars Beatty and Dunaway announced La La Land had taken the best picture prize – but then the musical’s producer Jordan Horowitz announced there had been a mistake.
He said: “This is not a joke. Moonlight is best picture,” and showed the camera the card that revealed the winner.
Two La La Land producers had already given their acceptance speeches before the mistake was revealed.
Host Jimmy Kimmel joked that he knew he would he would mess up compering the ceremony, and added: “Personally I blame Steve Harvey for this,” referring to Harvey’s mistake in announcing the Miss Universe winner in 2015.
Beatty had opened the envelope but hesitated to read out what it said inside, leaving it to Dunaway to announce La La Land.
He returned to the microphone to say: “I want to tell you what happened. I opened the envelope and it said ‘Emma Stone, La La Land’, and that is why I took such a long look at Faye and at you.
“I wasn’t trying to be funny. This is Moonlight for best picture.”
The film’s director Jenkins said: “Very clearly even in my dreams this can’t be true. But to hell with it because this is true. It’s true, its not fake.”
Paying tribute to the team behind La La Land for the way they handled the mistake, he said: “We have been on the road with these guys and it was so gracious and so generous of them.”
Emma Stone, who won the coveted best actress prize, said backstage.
“I’m so excited for Moonlight. Of course it was an amazing thing to hear La La Land and I would love to win best picture. But we are so excited for Moonlight. I think it is one of the best films of all time.
“Is that the craziest Oscar moment of all time? Cool! It’s going to be history.”
Emma Stone won the coveted best actress prize, while La La Land also picked up best cinematography, best score and best original song for City of Stars.
It also won best production design.
Casey Affleck won best actor for Manchester by the Sea, while the drama also won best original screenplay.
Mahershala Ali won best supporting actor, for Moonlight.
He thanked his wife in his acceptance speech, telling the audience she gave birth to their daughter four days ago. It also picked up best original screenplay.
Best supporting actress went to Viola Davis for Fences, directed by and starring Denzel Washington.
The film is an adaptation of August Wilson’s play of the same name.
“There’s one place that all the people with the greatest potential are gathered – and that’s the graveyard,” she said as she collected her award.
“We are the only artists who celebrates what it means to live a life. Here’s to August Wilson who exhumed and exhalted the ordinary people.”
Davis, who had been nominated twice previously for Doubt and The Help, also thanked her “captain”, Washington.