Valtteri Bottas pipped Lewis Hamilton in a tight fight for Austrian Grand Prix pole position as Sebastian Vettel was penalised for impeding a rival.
Vettel, 14 points behind Mercedes driver Hamilton in the championship, will drop from third to sixth after being found guilty of blocking Renault's Carlos Sainz.
Bottas took pole by 0.019 seconds after Hamilton made life difficult for himself with a mistake on his first lap.
Vettel qualified 0.334secs behind the Finn in his Ferrari.
But the German will now start behind his team-mate Kimi Raikkonen, the Red Bull of Max Verstappen and the impressive Haas of Romain Grosjean.
Verstappen's team-mate Daniel Ricciardo took seventh, and expressed his unhappiness with Red Bull's strategy during the session.
- Full qualifying results
- Chequered Flag podcast: Austrian GP qualifying review
- Austrian Grand Prix radio & online coverage details
Bottas the star for once
Bottas blitzed the first runs in the top 10 shootout, while both Hamilton and Vettel made errors.
The Finn was nearly 0.5secs clear of Hamilton after the Briton ran wide at Turn Three, the second hairpin, and lost speed all the way down the following straight.
Vettel also ran wide and lost time - but in his case at Turn Four.
Hamilton put it together on his second run but was on the back foot and Bottas improved anyway to move the goalposts even further ahead.
In the stewards' investigation into the incident with Sainz, Vettel said that he had not been warned about the Spaniard behind him and could not see him in his mirrors. But the stewards ruled that Vettel "should not have been so slow and on the racing line during a slow-down lap".
Who will win in Austria?
Choose your top three drivers from the list below
Red Bull tension
Red Bull were struggling for pace on their home track, with Verstappen fifth and Ricciardo seventh, split by Haas driver Romain Grosjean.
But there appeared to be tension on track as Ricciardo seemed to slow at one point in Q3 to try to let Verstappen by, but the Dutchman refused the invitation.
Ricciardo was then heard on the radio saying: "There is no point me running. I'm just punching a hole." It was an apparent reference to the proximity between the two cars on track and the Australian being close enough to give Verstappen a slipstream, which would be an advantage.
Later, Verstappen, again running behind Ricciardo at the start of their second runs, was heard saying on the radio: "What is going on?"
He was told by his engineer Gianpiero Lambiese: "Just overtake him, mate."
Verstappen replied: "No. Last weekend I was in front and now he is in front."
He was again told to overtake him, and Verstappen replied: "No. Discipline."
Ricciardo was angry because the team decided the drivers would do three runs in Q3, and he was ahead for all three.
The Australian said: "I knew I was going to be first but my argument was, having three runs, at least give me one run when I am not first. I can be disadvantaged for two, but give me one where I got something.
"Every weekend we swap. One car goes first. This time it was me. But at least give me one. I don't want to think too much into it. It just a simple question - why couldn't I have at least one run, which was fair? Or give me with a tow one run.
"Call it luck of the draw because it's my turn this weekend to be first, fair enough I'll take it, but why all three? I was just bleeding lap time on the straight and 0.2secs is 0.2secs. You've got to push back, and I feel this weekend is worth pushing back for."
Verstappen said the drivers take it in turns and that he had to punch the hole for Ricciardo in France; this week it was Ricciardo's turn to return the favour.
"Why is he frustrated? He did all weekend in Paul Ricard in qualifying and we always swap around. Paul Ricard I was ahead. Canada I was behind. And next weekend I'll be in front again. I understand it is not nice, but it was also not nice for me in Paul Ricard.
"It was very clear what the team wanted and what they said before qualifying and I stick with that."
Verstappen ended up 0.156secs quicker than Ricciardo, behind whom the second Haas of Kevin Magnussen and the Renaults of Sainz and Nico Hulkenberg completed the top 10.
Two great names struggling
McLaren had another difficult day. Fernando Alonso looked as if he could have qualified in around 11th or 12th place but he ran wide on his final run in second qualifying at the final two corners, damaging his front wing and failing to improve on his earlier time.
That left the Spaniard 14th, while team-mate Stoffel Vandoorne ended up 16th, failing to progress beyond first qualifying, when he was nearly 0.3secs slower than Alonso.
A Williams made it out of Q1 for the first time since the Monaco Grand Prix, Lance Stroll qualifying 15th, and giving a little whoop of delight as he was told of his time at the end of the first session.
All three men will be promoted one place on the grid as a result of a five-place penalty for an unauthorised gearbox change for Sauber's Charles Leclerc, who qualified 13th.
What they said
Valtteri Bottas: "The whole weekend we have been making good progress with the set-up. The car felt so good and in the last run I knew there was 0.1secs I could improve on the first run and I managed to find it. Apparently I needed it."
Lewis Hamilton: "Not too bad. I am happy with it. Valtteri did a stunning lap on the first run and I did a little mistake and that kind of ended the run. This is a great result for the team and Valtteri deserved it today."