A viciously sharp satire about class conflict, with an already-infamous vomiting and pooping scene, won the Palme d'Or at the Cannes Film Festival on Saturday, the second time Swedish director Ruben Ostlund has won the prize.

"Triangle of Sadness" puts Ostlund among a select group of two-time winners of the top prize at Cannes. He first scooped the Palme in 2017 for "The Square".

Now firmly established as cinema's king of cringe, Ostlund, 48, takes a scalpel to bourgeois niceties. This time he turned his gaze on fashion models and the ultra-rich, who find their status suddenly undermined when disaster strikes a cruise ship.

Tom Hanks played the dastardly manager Colonel Tom Parker in 'Elvis' but reviews of his performance were sharply divided
Tom Hanks played the dastardly manager Colonel Tom Parker in 'Elvis' but reviews of his performance were sharply divided AFP / Valery HACHE

An extended sequence of projectile vomiting and violent diarrhoea on the ship quickly became the talk of the festival after its premiere last week, leaving viewers either howling with laughter or turning green.

Accepting the award, Ostlund said he wanted audiences to be entertained but also "to ask themselves questions, to go out after the screening and have something to talk about".

There were minimal red carpet protests, though one woman managed to strip down to the colours of the Ukrainian flag to protest rape by Russian forces
There were minimal red carpet protests, though one woman managed to strip down to the colours of the Ukrainian flag to protest rape by Russian forces AFP / Valery HACHE

The most moving part of the ceremony was the best actress award that went to Iranian Zar Amir Ebrahimi, forced to flee her country 16 years ago following a smear campaign over her love life.

She played a journalist in "Holy Spider", tracking a man who murders prostitutes in the holy city of Mashhad.

"I have come a long way to be on this stage tonight," said Ebrahimi, who now lives in Paris. "It was not an easy story.

K-pop megastar Lee Ji-eun starred in 'Broker' from Japanese director Hirokazu Kore-eda
K-pop megastar Lee Ji-eun starred in 'Broker' from Japanese director Hirokazu Kore-eda AFP / PATRICIA DE MELO MOREIRA

"This film is about women, it's about their bodies, it's a movie full of faces, hair, hands, feet, breasts, sex -- everything that is impossible to show in Iran," she added.

It was a strong night for Asian cinema with best director going to South Korea's Park Chan-wook for "Decision to Leave", about a detective falling for his murder suspect.

The best actor award went to Song Kang-ho -- world-famous as the father in the Oscar-winning "Parasite" -- for his performance in the touching adoption drama "Broker" by Japan's Hirokazu Kore-eda.

The runner-up Grand Prix was split between 32-year-old Belgian Lukas Dhont and French veteran Claire Denis.

Tom Cruise got an honorary Palme d'Or early in the festival for his efforts to get punters back into cinemas
Tom Cruise got an honorary Palme d'Or early in the festival for his efforts to get punters back into cinemas AFP / Valery HACHE

Dhont's "Close" is a tender portrait of two boys facing bullying as they grapple with their budding sexuality, while Denis won for "Stars at Noon", a love story set against political tensions in Central America.

The third-place Jury Prize was shared between "The Eight Mountains", about a lifelong friendship in the Italian Alps; and the festival's most radical entry, "EO", a movie told entirely from the point of view of a donkey, from 84-year-old Polish legend Jerzy Skolimowski.

The 12-day festival saw plenty of Hollywood glitz, kickstarted by Tom Cruise with his first trip to Cannes in 30 years to launch "Top Gun: Maverick", accompanied by a French Air Force display team.

There was also the world premiere of Baz Luhrmann's rock'n'roll biopic, "Elvis".

In a crowd-pleasing twist, Elvis Presley's granddaughter Riley Keough won the Camera d'Or, the prize for best first film, for "War Pony" with co-director Gina Gammell.

The war in Ukraine cast a shadow over proceedings from the start with a video message from President Volodymyr Zelensky at the opening ceremony.

Several Ukrainian films received special screenings, and there was bitter debate over the inclusion of Russian director Kirill Serebrennikov in the main competition, despite his condemnation of the war.

Critics found it impossible to agree on the entries this year, with many being loved and hated in equal measure.

"Triangle of Sadness" also proved divisive, with Variety finding it "wickedly funny" while the The Guardian calling it a "hammy, unsubtle, easy-target satire".

But the final word went to the nine-strong jury, this year led by French actor Vincent Lindon and including two-time Oscar-winning Iranian director Asghar Farhadi and Indian superstar Deepika Padukone.

Lindon said they struggled to agree on a winner, but "the entire jury was extremely shocked" by "Triangle of Sadness".