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!”
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.”
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.”
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.
Richard E Grant, Rachel Weisz and Christian Bale lost out on the acting awards.
But there was a string of British winners in some key technical categories.
Paul Lambert and Tristan Myles shared the prize for best visual effects with two American colleagues for creating the rocket-rattling effects on First Man, about the first Moon landing.
And key crew members on Bohemian Rhapsody won the two sound awards.
John Warhurst and Nina Hartstone won best sound editing, while Paul Massey, Tim Cavagin and John Casali shared the sound mixing prize.
The Oscars failed to find a main host this year after comedian Kevin Hart pulled out following a row about old homophobic tweets.
So instead of having the traditional opening monologue, Tina Fey, Maya Rudolph and Amy Poehler appeared to introduce the show as well as presenting the first award.
“We are not your hosts this year but if we had hosted, it probably would have gone like this,” Fey said – before the trio launched into a sketch poking fun at some of the nominees, which is one of the host’s usual jobs.
The ceremony continued to rely on a procession of stars presenting individual awards.
But it didn’t obviously suffer from the lack of an overarching host, and it helped the event move along.
Queen, fronted by singer Adam Lambert, had opened the ceremony with a bombastic medley of We Will Rock You and We Are the Champions as A-listers waved and clapped along in their seats.
Source: BBC