Champion Lewis Hamilton celebrated his first win of the Formula One season at a crash filled and dramatic Monaco Grand Prix after Mercedes told team mate Nico Rosberg to move aside and Red Bull wrecked Daniel Ricciardo's chances.
While fortune finally favoured the triple world champion after a run of bad luck, championship leader Rosberg finished seventh -- 93.2 seconds behind -- and saw his lead cut to 24 points after six of 21 races.
Australian Daniel Ricciardo was runner-up, a botched second pitstop destroying his chances after he started on pole position for the first time, with Mexican Sergio Perez third for Force India.
"I prayed for a day like this so I feel truly blessed," said Hamilton, who had cut a disconsolate figure after a fuel pressure problem in qualifying left him third on the starting grid.
He made the right call on the tyres, however, with a late change to slicks and got more mileage out of the ultrasofts than expected. He also made his car as wide as possible with Ricciardo crawling all over the back of him.
Hamilton was congratulated by Canadian pop singer Justin Bieber as he stepped out of the car in the pit lane before the podium celebration.
His jubilation contrasted to Ricciardo's sense of shock, the Australian feeling robbed of a likely victory by his own team whom he said had called him in for a pitstop and then did not have the tyres ready.
"Two weeks in a row I've been screwed," said the driver, who had also led in Spain two weeks ago until a strategy error handed the win to 18-year-old Dutch team mate Max Verstappen.
"It sucks. I was called into the box. They should have been ready."
"Nothing you can say can make it any better," Ricciardo had told the team over the radio after the chequered flag. "Just save it."
Ricciardo had built up a tidy lead at the start before Mercedes told Rosberg, then in second place, to let Hamilton through because the German was suffering from high brake temperatures.
The race had started with seven laps behind the safety car in wet conditions, dried out and then ended with more rain threatening and cloudy skies.
Ferrari's Sebastian Vettel finished fourth, while Finnish team mate Kimi Raikkonen retired with his front wing wedged under the car after clouting the barriers on the 12th of the 78 laps.
McLaren's Fernando Alonso was fifth, on the 50th anniversary of his team's race debut in Monaco in 1966, with Force India's Nico Hulkenberg snatching sixth from Rosberg at the very end.