Barcelona romped to a 6-2 victory at fierce rivals Real Madrid to move seven points clear at the top of La Liga.
Gonzalo Higuain headed Real ahead but Thierry Henry curled an equaliser and Carles Puyol nodded Barca in front.
Lionel Messi slotted past Iker Casillas and, after Sergio Ramos replied with a glancing header, Henry clipped into an empty net and Messi rolled in another.
Gerard Pique tapped in the sixth as Barca warmed up for their Champions League meeting with Chelsea in style.
The Catalan giants travel to London for their semi-final second leg on Wednesday with the tie evenly-poised at 0-0.
And, on this evidence, Chelsea will need to produce another sterling defensive effort to prevent Barca from reaching a second final in four years.
Pep Guardiola’s men, who are set to win La Liga for the first time since 2006, have now scored 100 league goals in 34 matches this season and, remarkably, against Real they could easily have had more.
Rarely had Spain’s two biggest clubs met with so much at stake and the atmosphere inside the Bernabeu before kick-off was fitting of one of the most eagerly-anticipated encounters in El Clasico history.
When the sides played at the Camp Nou in December, Barca ran out 2-0 winners and extended their lead over Real to 12 points.
Between then and Saturday’s encounter Real had picked up 52 points from a possible 54 and closed the gap to four points with five games remaining.
The reigning champions knew only a victory would realistically keep them in contention for a third straight title and they got off to the perfect start.
Sergio Ramos ghosted past Eric Abidal on the right and crossed for an unmarked Higuain to head powerfully beyond Victor Valdes.
Barca probed for an immediate response and it came as no surprise when Henry latched on to Messi’s through ball, opened his body and caressed the ball past Casillas.
A pulsating, end-to-end spectacle was unfolding and Real, inspired by the fit-again Arjen Robben, nearly hit back as Higuain zipped the ball across the face of goal and Daniel Alves almost diverted it into his own net.
But the rest of first half belonged to Barca as – with help from Real’s porous defence – they produced an attacking masterclass.
After Henry was fouled by Fabio Cannavaro on the left, Xavi’s free-kick picked out Puyol to score his first league goal this season with a bullet header.
Xavi, Andres Iniesta and the imperious Messi were running Real ragged and Casillas was called into action twice in quick succession to deny the 21-year-old Argentine.
The hosts’ luck would soon run out, however, and when Xavi robbed Lassana Diarra of possession and sent Messi haring through on goal, there was only ever going to be one winner as he tucked smartly past Casillas.
Barca created countless chances before the break but it was Real who started brightest after half-time, and Ramos kept their hopes alive with a neat header from Robben’s teasing free-kick.
But that was the beginning and end of their comeback.
Two minutes later, Xavi picked out Henry with a delicious whipped pass and the former Arsenal striker easily beat Casillas, who had made a poor decision to come rushing out of his box.
Although a temporary lull ensued, Barca seemed capable of bursting into life at any moment and so it proved as Messi collected yet another fine pass by Xavi, dummied Casillas and finished with aplomb.
There was still time for Pique to grab his first league goal for Barca, shooting home at the second attempt after a right-wing cross by Eto’o.
It was the first time in the history of this fixture that the away team had scored six goals, a feat that as good as secured Barca’s 19th Spanish title.
Real Madrid coach Juande Ramos:
“We have lost a lot of the hope we had about winning the league.
“We still have to put all our effort into the competition. Of course it’s difficult and much more difficult than before.”
Barcelona coach Pep Guardiola:
“It is not easy to win at the Bernabeu and this is one of the happiest days of my footballing life, as we have made a lot of people happy.”
“We have taken a very big step towards winning the title. We wanted to kill it, to kill the league here. It’s a very sweet night winning at this stadium and in front of these fans.
“It is not going to hurt ahead of the Chelsea game, either. It’s going to put us in very good shape. We are going there to seal our place in the Champions League final.”