Red Bull's Sebastian Vettel took a scintillating pole position for the Canadian Grand Prix.
The German was again a class apart and took his sixth pole in seven races this year by 0.185 seconds from the Ferraris of Fernando Alonso and Felipe Massa.
The McLarens of Lewis Hamilton and Jenson Button, surprisingly struggling for pace, were fifth and seventh, with Force India's Paul di Resta 11th.
Red Bull's Mark Webber was fourth and Mercedes' Nico Rosberg sixth.
"Another pole for Vettel - I can hear you groaning at home," said BBC F1 commentator Martin Brundle, "but the encouraging thing is that the Ferraris are right there."
"Ferrari will be happy because Red Bull have not been able to dominate in the races as they have in qualifying," added BBC F1 chief analyst Eddie Jordan.
Red Bull had been expected to be vulnerable here - and this was one of the closest battles for pole this year.
Vettel set his time on his first run in the final part of qualifying, and failed to improve on his second.
But Alonso, who has been strong throughout the weekend, was unable to close the gap, even though he leapfrogged Massa into second place on his final run.
This was Massa's most convincing performance for some time, after two races struggling to get close to Alonso.
McLaren team principal Martin Whitmarsh said: "We're not as quick as we should be on the straight. In my view, we've got too much drag here.
"The set-up we have is better for wet than it is for dry. If we had a smaller wing we might have been trying it this afternoon. But we didn't. So I think there was a difference of opinions."
But Button denied the team had a wet set-up.
"Not specifically," he said. "We have an optimised set-up that will work in pretty much any conditions."
And Hamilton, who had been on pole for the last three Canadian Grands Prix but finished more than 0.5secs off Vettel's pace, said he was slow on the straight because his seventh gear was too long.
"We are just very slow this weekend," he said. "It appears the other guys have maybe made a step forward. I pushed beyond the limit on my lap because I knew we weren't as competitive as the guys in front. We're not in the worst position but we'd like to be higher up.
"My lap was fantastic, it was the maximum I was able to do. I think this weekend we're just lacking speed compared to past years.
"I don't think I've ever driven the car so hard, I was on such a ragged edge. I think I even touched the wall at one stage. I got everything I could from it, with also trying to use the tow of another car because we're so slow on the straight. We're 10km/h, maybe 12, slower on the straight so losing a couple of 10ths on the back straight.
"I just want to finish tomorrow and hopefully get some points. Vettel's gone he's on his way, they're very hard for us to catch at this rate. I don't know when we have anything coming but I really hope sometime soon we'll have something positive come to the car."
Amidst the talk of set-ups, Red Bull team boss Christian Horner said his team had also taken account of the weather forecast.
"We've gone for a set-up which covers both eventualities," Horner said. "We didn't expect to get pole here, so it's a surprise to get it here at one of our weakest circuits. A fantastic performance from Seb."
Vettel said: "It is a tricky track with the chicanes and the kerbs to understand. All in all I'm very happy, it's obviously a big step. But the big thing is tomorrow, conditions are very likely to change but how much we don't know."
Horner revealed that Webber had been running without his Kers power-boost system.
Problems with Kers had meant the Australian missed the entire morning's practice session and the team could not fix it in time for qualifying.
"It's a bit of a shame for Mark," Vettel said. "He was not able to run this morning, so that makes it hard to find a rhythm, but I'm sure both of us will be strong tomorrow."
Alonso added: "I feel good, I feel confident. We concentrate on qualifying on Saturday and this is the best result of the year for the team, second and third.
"Two tenths or one and a half tenths behind Red Bull is encouraging. I am looking forward to the race.
"Maybe it is the least important qualifying of the year with the weather forecast (for rain) and we are second and third. But still it is good to be as high as possible and we have a chance to win the race."
Di Resta was unable to scrape into the top 10, but he impressively out-qualified his experienced team-mate Adrian Sutil on his first visit to the Circuit Gilles Villeneuve.
Di Resta lined up 11th, with Sutil in 14th and 0.5secs adrift of the Scot.
"If I had taken an extra set of tyres, I might have been able to beat (Renault's) Nick Heidfeld, even though there wasn't a lot left out there," Di Resta told BBC Sport.
"But it's probably better to be starting on the clean side of the grid with an extra set of tyres for the race.
"Since we started at the weekend, the car's been working well. The track is all about commitment. It seemed to appeal to me quickly and it's looking quite promising for the race."
Williams driver Pastor Maldonado, also in his first season in F1, beat his veteran team-mate Rubens Barrichello for the second race in succession, the Venezuelan taking 12th place with the Brazilian down in 16th.
Sauber stand-in Pedro de la Rosa had a brush with the wall on the exit of the chicanes at Turns Six and Seven in the first part of qualifying, but he managed to get through into the second session, pushing Toro Rosso's Jaime Alguersuari into 18th place.
The 40-year-old Spaniard was drafted in for the second practice session on Friday after regular driver Sergio Perez pulled out because he was feeling uncomfortable.
The Mexican was in hospital for two days following a crash in qualifying at Monaco two weeks ago that left him with concussion and although he was passed fit by doctors on Thursday he decided he was not in good enough condition to race.
De la Rosa was slowest of the drivers in the second part of qualifying and will line up 17th on Sunday.
Italian veteran Jarno Trulli, who has had a troubled start to the season with Lotus, out-qualified team-mate Heikki Kovalainen for the first time this year.
Hispania, with some major upgrades to their car here in Montreal, won the back-of-the-grid battle with Virgin, with Vitantonio Liuzzi taking 21st place ahead of lead Virgin driver Timo Glock.
The German's team-mate Jerome D'Ambrosio failed to set a time within 107% of the fastest time in the first session, but will be allowed to race after the stewards - who for this race include double world champion and Indy 500 winner Emerson Fittipaldi among their number - took into account that he had been forced to switch to the team's spare car following his crash at the end of second practice.