British actress Olivia Colman defied the odds to scoop an Oscar on a night when Green Book also sprung a surprise by winning the award for best film.
Colman won best actress for her role in The Favourite and charmed viewers with a funny and tearful speech.
Green Book won three trophies in total, including best picture, which had been widely expected to go to Roma.
Bohemian Rhapsody won the most awards in total with four, while Roma and Black Panther also won three each.
The star, who started out as a sidekick in TV sitcoms like Peep Show, was in shock when her name was called.
Glenn Close had been the firm favourite for her role in The Wife – and now has the unenviable record of seven nominations without a win.
Holding back tears on stage, Colman said: “It’s genuinely quite stressful. This is hilarious. I’ve got an Oscar!”
The first British woman to win the prize since Kate Winslet in 2009, she added: “Any little girl who’s practising their speech on the telly – you never know!”
And she endeared herself further to the audience by responding to a signal to end her speech by blowing a raspberry.
The four awards for Bohemian Rhapsody, the authorised biopic of Queen and Freddie Mercury, included best actor for Rami Malek, who won rave reviews for playing the late singer.
“I think about what it would have been like to tell little bubba Rami that one day this might happen to him, and I think his curly-haired little mind would have been blown,” he said in his acceptance speech.
“That kid was struggling with his identity, trying to figure himself out, and to anyone struggling and trying to discover their voice – listen, we made a film about a gay man, an immigrant, who lived his life unapologetically himself.
“And the fact I’m celebrating him and this story with you tonight is proof that we’re longing for stories like this.”
The biggest winners
- Bohemian Rhapsody – 4
- Black Panther – 3
- Green Book – 3
- Roma – 3
Mahershala Ali won his second best supporting actor Oscar in three years. He won for Moonlight in 2017 and has now won for playing jazz pianist Don Shirley in Green Book.
“Trying to capture his essence pushed me to my ends, which was a reflection of the person he was and the life that he lived,” Ali said.
The film tells the story of Shirley’s tour to the racially segregated US Deep South in the 1960s, but its chances had been thought to have been dented by a series of controversies.
Meanwhile, a tearful Regina King won best supporting actress for If Beale Street Could Talk, from what was her first Oscar nomination.
She said: “I’m an example of what it looks like when support and love are poured into someone – mom, I love you so much.”
Spike Lee finally has an Oscar
It’s been three decades since his landmark films She’s Gotta Have It and Do The Right Thing – and now Spike Lee finally has a competitive Oscar. He already has an honorary Oscar, which he won in 2016.
He didn’t win this time for best director – he won best adapted screenplay for BlackKklansman, which tells the true story of a black police officer who infiltrated the Ku Klux Klan.
In his speech, he referred to the 400th anniversary of the first slaves being taken to America.
He then made the most political remarks of the night, saying: “The 2020 presidential election is around the corner. Let’s all mobilise. Let’s all be on the right side of history. Make the moral choice between love versus hate.”
He added: “Let’s do the right thing. You know I had to get that in there.”
Speaking after the ceremony, he said “the ref made bad call” when asked about Green Book’s best picture win.