Real Madrid replaced Barcelona at the top of La Liga on Saturday after they beat Racing Santander 1-0 at home and the champions were held 1-1 at Athletic Bilbao.
Manuel Pellegrini's side head into next Sunday's 'El Clasico' at the Nou Camp with 28 points from 11 games, one ahead of Barca, after Gonzalo Higuain got the only goal at the Bernabeu.
Daniel Alves gave Barca the lead just after the break at San Mames but the Basques battled back with substitute Gaizka Toquero racing through to level just past the hour mark.
Real were all over Racing from the outset and had hit the woodwork twice before Higuain hooked in from close range in the 21st minute.
Real had been whistled off the pitch in their last home game, after being knocked out of the King's Cup by third-tier Alcorcon, and the Bernabeu became restless as their team continued to dominate but without adding to the score.
Karim Benzema had a wonderful backheel ruled out for offside after the break and Racing, with new coach Miguel Angel Portugal at the helm, almost snatched a point when Sergio Canales had a goal harshly disallowed for offside at the other end.
"The game wasn't as tight as the scoreline suggests. On another day, playing worse, we would probably have scored more goals," Pellegrini said.
Bilbao chased shadows for most of the first half but made life difficult for Barca until Xavi played the overlapping Alves into the area and the Brazilian fired inside the far post.
Home coach Joaquin Caparros immediately threw on another striker and was rewarded when Fernando Llorente flicked the ball on for Toquero to burst through the centre and equalise in the 62nd minute.
Bilbao, who lost 4-1 to Barca in last season's King's Cup final, ran themselves into the ground to keep their out-of-sorts visitors at bay.
"We are playing as well as we usually do, creating chances, but struggling to score goals," Alves told television station La Sexta. I hope normal service will be restored from next Sunday."
Earlier, Sevilla beat promoted Tenerife 2-1 away with well-taken goals in each half from Diego Perotti and Renato.
Manolo Jimenez's side held on to third place with 25 points, three ahead of Deportivo Coruna, who climbed to fourth after a hotly-disputed injury-time penalty gave them a 2-1 victory over visiting Atletico Madrid.
Sergio Aguero poached an early goal for Atletico but Argentine compatriot Diego Colotto levelled for Depor with a back post header in the 20th.
Mexico's Andres Guardado netted the spot kick at the end after Pablo Ibanez was penalised for bringing down Alberto Lopo.
Struggling Atletico remain in the relegation zone with seven points, behind 17th-placed Racing on goal difference.