|Spain keeper Iker Casillas' error got the ball rolling for Real Zaragoza at the Bernabeu[AFP]
Barcelona missed a chance to virtually wrap up a third straight Spanish Primera Division title when they surrendered the lead and lost 2-1 at Real Sociedad after Real Madrid had also lost.
Real coach Jose Mourinho rested key players including Cristiano Ronaldo in the earlier kickoff and saw his side beaten 3-2 at home by relegation-threatened Real Zaragoza.
Leaders Barca were looking in good shape for an 11-point lead over second-placed Real Madrid after Thiago Alcantara opened the scoring in the 29th minute in San Sebastian.
However, Diego Ifran pounced on a loose ball to equalise for mid-table Sociedad with just under 20 minutes remaining and Xabi Prieto netted from the spot in the 82nd minute after substitute Javier Mascherano conceded a penalty.
The result, which meant Barca missed equalling Sociedad's record run of 32 La Liga games unbeaten in the 1979/80 season, leaves Pep Guardiola's side on 88 points from 34 matches.
Real, who beat Barca 1-0 to win a dramatic Copa del Rey final last week but lost 2-0 to the Catalans in Wednesday's European Champions League semifinal first leg, have 80 points in second.
If Real managed to draw level on points, Barca would win the title due to a superior head-to-head record.
They routed Real 5-0 at the Nou Camp in November and drew 1-1 at the Bernabeu earlier this month.
At the Bernabeu earlier on Saturday, a brace from Angel Lafita, with the first due to a rare howler from goalkeeper Iker Casillas, and a penalty from Gabriel Arenas downed Madrid, who were reduced to 10 men late on with Ricardo Carvalho sent off for two yellow cards.
Sergio Ramos (62 min) and Karim Benzema (85) pulled goals back for the hosts, but Zaragoza held on to inflict a second league home defeat of the season on Real, who had also lost 1-0 to Sporting Gijon, and move them four points clear of the relegation zone.
Mourinho had taken up all the column inches in the Spanish media after accusing Barcelona of receiving favouritism from referees, but on the pitch his side had little to say.
The Portuguese must now motivate his troops for Wednesday's semifinal return leg at the Nou Camp with his side needing to overturn a 2-0 first leg deficit to reach the Wembley final.
Real left out top-scorer Ronaldo, Marcelo and Angel di Maria with the Barcelona return leg in mind, but still boasted Kaka, Gonzalo Higuain, Pepe and Ramos with the latter two suspended for the European duel.
Kaka, an unused substitute in the Barcelona defeat, had Madrid's first opening on 18 minutes firing a right-footed drive just wide.
The hosts were controlling possession but fell behind four minutes before the break with goalkeeper Casillas gifting the visitors a goal with an uncharacteristic gaffe.
Casillas raced out of his goal to clear a long ball over the top but kicked thin air and Lafita eventually rolled the ball into an empty net.
The mistake from Casillas will do little for his confidence ahead of the Barcelona duel and at half time Real players trudged off with Mourinho writing notes on his pad for the team talk.
Mourinho threw on Di Maria and Marcelo but his side then conceded a stupid penalty with Carvalho bringing down Lafita in the area on 54 minutes.
Midfielder Arenas converted the penalty to draw a chorus of jeers from the disgruntled home fans.
Ramos headed in a corner on 62 minutes to reduce the arrears and Benzema then hit the crossbar for Real as they pressed for an equaliser.
Zaragoza were holding on but then hit the hosts with a fine counter attack and Lafita slotted home his second on 77 minutes to clinch three vital points for the club and render Benzema's late strike irrelevant.
Elsewhere Atletico Madrid were travelling to Deportivo La Coruna later on Saturday looking to make more headway in their bid to finish in the top six.