Max Verstappen's title challenge was blown slightly off course as a deleted lap time handed pole position at the Portuguese Grand Prix to Valtteri Bottas.
The Red Bull driver was victorious last time out at Imola and his team again looked to have the best pace in Portimao ahead of qualifying.
But Verstappen complained of a lack of straight-line speed in Q1 and struggled with grip throughout amid windy conditions on the Algarve.
And a correction to avoid a crash at Turn 4 saw a lap that would have been the fastest of Q3 chalked off for exceeding track limits, and he could not replicate it on his sole flying lap that did count.
It meant Bottas claimed pole with a time of one minute and 18.348 seconds, with Mercedes team-mate Lewis Hamilton denied a 100th career pole as he took second, missing out by just 0.007secs.
Verstappen, whose disqualified lap was a 1:18.209, conceded he has found little joy out of the challenge presented by the Algarve International Circuit.
"Whole qualifying was very difficult to drive, was struggling with grip," he said in the post-session interviews.
"I was quite confident I could do another good lap, [but a] car in front in the last corners disturbs you.
"It's of course not ideal, we'll try to fight them [Mercedes] in the race and see what we can do. Hopefully everything stabilises, up until now it's not been a lot of fun to drive here."
Bottas' emotions were a marked contrast, the Finn left unsurprisingly satisfied with the 17th pole position of his career.
"Feels like it's been a while. It's been a weak point for me in the first two races, getting the tyres to work," said Bottas.
"The team have been working hard all weekend and we have a good position for tomorrow.
"Starting with the medium tyre tomorrow is good, and it opens up opportunities that we can go as long as we want in the first stint.
Hamilton added: "A great job by Valtteri and our teams for us both to be on the front row, it was not expected. We have to be happy for that, it was not the perfect lap but I gave it everything.
"You can never be satisfied, we exist to keep moving forward but I'm happy with what we're doing and the steps we're taking."
The Red Bulls were far from the only ones to struggle with the wind, McLaren's Daniel Ricciardo failing to make it out of Q1, he will start 16th.
But there was better news for Sebastian Vettel, who made it through to Q3 for the first time since joining Aston Martin.
Vettel will start 10th in a race that will provide plenty of intrigue after an unanticipated shakeup at the front, with both Red Bulls behind an all-Mercedes front row but expected to have better race pace.
Sergio Perez, who will start fourth, told Sky Sports: "I never really got on top of the car in this session, I lacked a bit getting into a rhythm.
"Not really everything worked but at least we have a good starting position, our race pace seems to be better."
If that proves to be the case, it will set the stage for a fascinating duel on Sunday.
PROVISIONAL CLASSIFICATION
1. Valtteri Bottas (Mercedes) 1:18.348
2. Lewis Hamilton (Mercedes) +0.007s
3. Max Verstappen (Red Bull) +0.398s
4. Sergio Perez (Red Bull) +0.542s
5. Carlos Sainz (Ferrari) +0.691s
6. Esteban Ocon (Alpine) +0.694s
7. Lando Norris (McLaren) +0.768s
8. Charles Leclerc (Ferrari) +0.958s
9. Pierre Gasly (AlphaTauri) +1.127s
10. Sebastian Vettel (Aston Martin) +1.311s