Atletico Madrid showed no sign of faltering at the top the table in Spain.
AS Roma stayed in touch with Italian leaders Juventus while in the Bundesliga Bayern Munich, long since crowned champions, warmed up for their Champions League semi-final against Real Madrid with a 5-2 victory over Werder Bremen.
In France, Paris St Germain squandered the chance to wrap up the Ligue 1 title when they could only draw with lowly Sochaux.
Atletico Madrid stayed rock solid at the top after a 1-0 victory at Valencia - Raul Garcia's header just before halftime being enough to take them to 88 points, a new club record.
Barcelona, playing two days after the death of former coach Tito Vilanova, earned an emotional win at Villarreal where they came back from 2-0 down to win 3-2 with Lionel Messi sealing the victory late on after two own goals had allowed Barca back into the match.
Barcelona are four points behind Atletico with three games left while Real Madrid, who beat Osasuna on Saturday, are six points behind with a game more to play than Atletico or Barca.
Athletic Bilbao strengthened their hold on fourth place with a 3-1 victory over Sevilla.
Veteran striker Claudio Pizarro scored twice in an explosive second half to help Bundesliga champions Bayern Munich crush Werder Bremen 5-2 after the Bavarians had twice been behind.
Arjen Robben, Bastian Schweinsteiger and Franck Ribery were also on target for Bayern who had won only one of their previous four league games.
Second-placed Borussia Dortmund, who have already secured their Champions League spot for next season, needed the skill and scoring ability of Marco Reus, who hit one goal and set up the other, to come from behind and draw 2-2 at Bayer Leverkusen.
Leverkusen hung on to fourth place that leads to the Champions League qualifying rounds with VfL Wolfsburg a point behind in fifth. Third-placed Schalke lost 1-0 at home to Borussia Moenchengladbach.
Second-placed AS Roma kept the Serie A title race going when they beat AC Milan 2-0 with goals from Miralem Pjanic and Gervinho, their ninth league win in a row.
The win took Roma on to 85 points from 35 games, five behind Juventus who visit relegation-threatened Sassuolo on Monday.
Roma's win meant that Juventus, who at one point held a 14-point lead, must wait at least another week to wrap up the title.
Paris St Germain failed to clinch the title on Sunday when Thiago Silva's own goal handed Sochaux a second-half equaliser and a 1-1 draw.
Edinson Cavani scored in the 24th minute to raise hopes that Laurent Blanc's side could clinch their second successive league title on their visit to third-bottom Sochaux.
Dimitar Berbatov's double strike on Saturday helped second-placed Monaco crush bottom club Ajaccio 4-1 to keep the championship race alive.
PSG, who won the French League Cup by beating Olympique Lyon 2-1 last weekend, have 83 points with three games remaining. Monaco are eight points adrift.
Ajax Amsterdam captured their fourth successive Dutch League title, and 33rd overall, with a 1-1 draw at Heracles Almelo on Sunday.
Lasse Schone's early goal set up Ajax for an afternoon of celebration but Simon Cziommer's equaliser in the 22nd minute ensured a nervy finish as Ajax opened up an unassailable lead at the top of the table to seal the title with one match remaining.
The draw moved Ajax to 70 points, out of the reach of the chasing pack.
- Sports & Recreation
- Atletico Madrid
- Real Madrid
- Werder Bremen