Webber got around the Catalunya Circuit in 1 minute, 20.981 seconds to edge Vettel by two-tenths.
Vettel had topped qualifying in the season's first four races, winning three of those.
There was no doubting Red Bull's pace after it dominated all three practice sessions, with Webber enjoying nearly a 1-second advantage over Lewis Hamilton of McLaren. Hamilton held off Ferrari's Fernando Alonso by 0.003 seconds in qualifying to start third.
Red Bull has started from pole position in 20 of the last 24 races as Webber snapped Vettel's five-race run from pole in a qualifying session that really just came down to two cars.
"We thought we were going to battle for the pole between ourselves. It was a nice lap, a good battle with Seb," said Webber, whose win here last year made it 10 straight victories for the polesitter. "But today was my day."
Vettel is hoping to have his overtaking KERS boost system in the car for Sunday's 66-lap race after being unable to use it in qualifying.
"It's not right to say that, because I didn't have KERS, Mark is on pole. I can't talk of big disappointment at the end of the day. It looks like we like this track and our car feels very comfortable," Vettel said. "He did the better job today -- but tomorrow is a long race."
Vettel holds a 34-point lead over second-place Hamilton and 38 over third-place Webber in the standings.
McLaren stayed closest to the Red Bulls again in qualifying but Hamilton never looked like breaking the top-two monopoly in the hot, dry conditions.
So dominant has Red Bull been in Barcelona that Webber could afford to watch the close of qualifying from the cool confines of the garage.
"Lewis is a phenomenal driver but it was pretty obvious he wasn't going to get us," said Webber, who kickstarted his championship bid at the Spanish GP last year. "So we sat it out."
Nick Heidfeld will start from the pit lane after Renault was unable to repair his car in time for qualifying. The German bowed out of practice earlier with his car engulfed in flames due to an exhaust problem.
Heidfeld's absence allowed Heikki Kovalainen to squeeze Lotus into 15th.