Barca beat Bilbao, Real held by Atletico
Sergio Busquets' header and a Lionel Messi penalty gave Barca their first victory in six outings in all competitions ahead of the visit of Olympique Lyon in the Champions League.
"To play well and win like this should give the fans a little more faith in the team," Barca coach Pep Guardiola said.
However, the victory came at a price with defender Carles Puyol leaving the pitch on a stretcher in the last minute with damaged ankle ligaments and now facing three weeks out.
In Madrid, Diego Forlan put Atletico ahead before the break and Klaas-Jan Huntelaar levelled in the 57th minute.
The visitors, who beat Barca last weekend, missed a host of second-half chances to claim their first derby win since 1999.
"I'm pleased with the effort from the team, but it is a draw that feels like a defeat because of the chances we have missed," Atletico coach Abel Resino said.
Barca have 63 points with 12 matches left. Atletico remain fifth with 40 points behind champions Real (57), Sevilla (47) and Villarreal (45), who beat visiting Espanyol 1-0.
Fabricio Fuentes headed Villarreal in front at a corner in the first half and they survived a spirited fightback from the relegation strugglers, who missed a second-half penalty.
Third-placed Sevilla host Almeria on Sunday.
The emotion of reaching their first King's Cup final in 24 years in midweek appeared to take its toll on Bilbao who were second best against their fellow finalists at the Nou Camp.
Barca suffered an early fright when Fran Yeste burst clear only to fire wastefully wide but in the 17th minute they went ahead when Busquets met Xavi's free kick from wide on the left with a powerful header.
The hosts then won a penalty when Andres Iniesta was bundled over as he dribbled into the area in the 32nd minute, Messi putting away the spot kick.
Barca threatened to cut loose after the interval but Gorka Iraizoz and the woodwork denied them as they warmed up nicely for Lyon's visit on Wednesday after the first-leg ended 1-1.
Atletico were the more adventurous side at the Bernabeu but Leo Franco was the busier goalkeeper until Sergio Aguero made his presence felt.
The Argentine executed a slick backheel to launch a counter-attack and after receiving a return pass he squared for Forlan to beat keeper Iker Casillas in the 38th minute.
After the break Real coach Juande Ramos brought on Gonzalo Higuain for Guti and he made an immediate impact, feeding Huntelaar on the edge of the area.
The Dutch striker turned his marker and fired high into the net, though television replays indicated he was offside.
Atletico refused to wilt, and Forlan, Aguero and substitute Florent Sinama Pongolle all went close near the end.