(CNN) -- The Spanish title race is shaping up to be one of the closest in years -- and the battle for the "Pichichi" is also hotting up.
While Atletico Madrid matched the 1-0 victory by league-leading city rival Real on Saturday, Diego Costa kept in touch with Cristiano Ronaldo at the top of the La Liga scoring charts by emulating the world player of the year's decisive strike.
Ronaldo's first-half winner at Malaga meant Real will head into next weekend's "El Clasico" clash with defending champion Barcelona holding a three-point advantage over second-placed Atletico.
It was his 25th goal in the league this season and 39th in all competitions, with Ronaldo firing home in trademark style after cutting into the penalty area from the left following a crossfield pass from Gareth Bale.
Ronaldo missed several other chances, and his collision with teammate Karim Benzema resulted in the France striker going off injured.
"We had chances to score the second goal but unfortunately we weren't able to get it and then when the score is 1-0 you always suffer," said coach Carlo Ancelotti.
"It wasn't a great game in terms of how we played, but we showed good attitude and were very solid defensively."
Brazil-born Costa, hoping to win a World Cup place this year with his adopted Spain, netted for the 22nd time in the league -- and 30th overall -- as he broke clear of the visiting Espanyol defense 10 minutes after halftime and coolly beat the keeper.
The Madrid clubs are moving clear of Barca, who are seven points behind Real ahead of Sunday's home clash with Osasuna.
Lionel Messi has won the Pichichi Trophy for the past two years, but is 10 behind Ronaldo after an injury-hit season so far. The Argentine is not even Barcelona's top scorer in the league -- that honor goes to Chile's Alexis Sanchez, who has 16.
In Saturday's other matches, Celta Vigo won 1-0 at fellow midtable side Levante while Rayo Vallecano moved three points clear of the relegation zone with a 3-1 win over second-bottom Almeria.
Champions Bayern Munich moved 23 points clear at the top of the table with a 2-1 win at home to fourth-placed Bayer Leverkusen, meaning coach Josep Guardiola could win his first league title with the club next weekend with eight matches to spare.
Goals from Mario Mandzukic and Bastian Schweinsteiger helped the European champions shrug off the midweek jailing of club president Uli Hoeness for tax evasion, as Stefan Kiessling's late consolation could not prevent Bayern's 16th successive league win.
Second-placed Borussia Dortmund suffered a 2-1 home defeat by Borussia Monchengladbach, and Jurgen Klopp's team will surrender the title race if more points are dropped next weekend.
Schalke, who moved up to third with Friday's 2-1 win over Augsburg, must also win to stop Bayern clinching a second successive title -- and 24th overall.
Dortmund's defeat meant Schalke closed to within a point of their rivals ahead of the derby clash on March 25.
Italian Serie A
Inter Milan moved up to fourth place with a 2-0 win at Verona, thanks to goals from Argentine forward Rodrigo Palacio and Brazilian defender Jonathan.
It was the third win in a row for Walter Mazzarri's side, but Fiorentina can reclaim the Europa League berth by beating Chievo Verona on Sunday.
French Ligue 1
Third-placed Lille missed a chance to close the gap on Monaco in second after being held 0-0 at home by Nantes.
Monaco travel to fifth-placed Lyon on Saturday, while champions Paris Saint-Germain will seek to extend an eight-point advantage at the top against fourth side St. Etienne.