Ivan Rakitic scored a delightful winning goal as Barcelona triumphed 1-0 in a tight Clasico clash with Real Madrid to move 10 points clear at the top of the La Liga table.
Barca won 3-0 at the Santiago Bernabeu to reach the Copa del Rey final in midweek and, three days later, it prevailed once more at the home of its bitter rivals in a game that saw captains Sergio Ramos and Lionel Messi involved in a flashpoint.
Rakitic struck the only goal with a cute chip that beat Thibaut Courtois with Barca comfortably holding Los Blancos at bay to inflict more Clasico misery and consecutive home league losses on Madrid.
With Santiago Solari's side now 12 points behind Barca, the title race may be almost over as a contest, although Atletico Madrid can stay in the hunt by winning at Real Sociedad on Sunday.
Gareth Bale was a surprise starter but the Wales forward wasted an early free-kick opportunity, with a Messi chip floating off target at the other end. Barca took the lead in the 26th minute, Rakitic racing clear of Ramos and delicately dinking a fine finish over Courtois after swapping passes with Sergi Roberto.
Courtois made a fine save to deny Luis Suarez before Luka Modric headed over the crossbar, the first half ending in controversy as Ramos avoided punishment after clashing with Messi.
Bale made way to boos as Solari turned to Federico Valverde and Marco Asensio before introducing third substitute Isco in a bid to change the game, but despite late pressure on Barca's goal the champions held on to perhaps strike a decisive blow in the title race.
What does it mean? Title race all-but over
Speaking at a pre-match news conference, Ernesto Valverde dismissed his side's treble chances and claimed its result at the Bernabeu would not decide the title. But Barca's points advantage is now double figures, it is in the final of the Copa del Rey and on track to reach the Champions League quarterfinals.
Utility man Roberto keeps Vinicius quiet
In Wednesday's Copa fixture, Vinicius had the run of the Madrid left wing with Nelson Semedo unable to keep him out of the game. Only the Brazilian's lack of composure prevented his side leading at half-time.
Barca dropped Semedo and moved Roberto to right-back to counter the threat of Vinicius and he not only managed to restrict the teenager's effectiveness but also created the winning goal for Rakitic.
Ramos shows lack of discipline... again
Madrid captain Ramos is no stranger to disciplinary issues and he again courted controversy moments before the interval by appearing to shove his forearm into the face of Messi, the defender perhaps spared the intervention of VAR by the half-time whistle.
Bale, meanwhile, was booed off by the Madrid fans after struggling to make an impact in what might well prove to be his final Clasico appearance for Los Blancos. It has now lost all five La Liga Clasicos at home to Barcelona when Bale has played.
Big games keep coming for Madrid as it hosts Ajax on Tuesday, holding a 2-1 lead from the first leg of its Champions League last-16 tie. Barca will likely hand minutes to rising talent in Wednesday's Supercopa de Catalunya against Girona.