Valterri Bottas won an incident-packed first race of the new Formula One season in Austria, as Lewis Hamilton was demoted to fourth following a five-second time penalty.
Bottas, who led every lap in a peerless performance, crossed the line just 0.6 seconds clear of his Mercedes team-mate, but the world champion was penalised after he was involved in a crash with Red Bull driver Alex Albon in the closing stages.
Ferrari driver Charles Leclerc moved up to second, with British driver Lando Norris taking the first podium of his career to finish third.
Red Bull appeared to have pulled off a tactical masterstroke by pitting Albon for fresh tyres during a second of three safety car periods.
On the restart and with just 10 laps of racing left, Albon moved round the outside of Hamilton at the fourth corner but on the exit the Briton refused to concede the position - with his front-left tyre hitting Albon's right rear.
Albon was launched into the gravel, ending his chances of a dramatic win. The stewards laid the blame at Hamilton's door.
It marked the second time in three races the pair have collided. Hamilton was also penalised for hitting Albon at last year's Brazilian Grand Prix.
The penalty capped a dramatic afternoon for Hamilton, who was earlier sent back to fifth on the grid for a yellow flag infringement in qualifying.
"There were so many chances for Lewis to get the lead if I made a small mistake, but I managed to keep it together and control the race from my side so there is no better way to start the season," said Bottas.
Leclerc, who started in seventh, added: "I didn't expect it. It was a huge surprise but a good one. We did everything perfect to get second and we were lucky with Lewis' penalty, but I am extremely satisfied."
Norris set the fastest lap of the race on the final tour to ensure he would get the jump ahead of Hamilton. The 20-year-old becomes the youngest British driver to finish on a grand prix podium.
"I am speechless," said the McLaren driver. "There were a few points in the race where I thought I had fudged it up.
"I didn't give up and I ended up on the podium. I had to put in some strong laps at the end and as you can see I am out of breath."
Hamilton wore a 'Black Lives Matter' T-shirt and took a knee before the race in a message against racism. He was supported by 13 drivers, but Leclerc and Red Bull's Max Verstappen were among six who chose to stand.