The win means Real leapfrog Sevilla, just two points behind leaders Barcelona who are on 65 points.
A spectacular Enzo Maresca strike put Sevilla in front but second-half goals from Ruud Van Nistelrooy (2) and Robinho gave Real the win. Chevanton grabbed a late consolation with a spectacular free-kick.
Robinho was sent-off after he put Real 2-1 ahead, over-celebrations resulting in a second yellow card, while Sevilla's Aitor Ocio was dismissed for an off-the-ball incident involving Mahamadou Diarra and team-mate Luis Fabiano was sent off for dissent.
Meanwhile Bernd Schuster’s Getafe joined the hunt for a place in Europe after classy goals from Daniel Guiza and Francisco Casquero earned a 2-0 win at Real Betis. Striker Guiza put Getafe in front on 16 minutes and midfielder Casquero scored with a spectacular lobbed finish.
The win left Getafe in eighth place, a point behind Recreativo Huelva, who drew 0-0 at home to Athletic Bilbao. Real Zaragoza were held 0-0 at home by Racing Santander and are now four points behind fourth-placed Valencia who won 2-1 at Deportivo Coruna on Saturday.
At the other end of the table, Levante claimed a valuable 2-0 victory over basement side Gimnastic to move three points clear of the drop zone, while their opponents are nine adrift of safety. Celta Vigo went down 1-0 at Villarreal and occupy one of two remaining relegation berths, three points ahead of fellow strugglers Real Sociedad.
In Italy, Ascoli and Messina were relegated from Serie A while Champions League finalists AC Milan could only draw 0-0 at home to Fiorentina.
Bottom side Ascoli went down with three games remaining after losing 1-0 at fellow strugglers Torino. Messina will also play in Serie B next season after Hernan Crespo’s close-range finish gave Inter Milan a 1-0 away victory.
Palermo’s 2-1 home defeat by Roma meant Milan could have virtually guaranteed a Champions League berth for next season if Kaka’s first-half penalty had not hit the post.
Lazio leapfrogged Milan into third after Luis Jimenez’s scuffed strike gave them a 1-0 win over Livorno. Empoli continued their extraordinary season with a 2-1 win over Catania which kept alive the club’s chance of Champions League qualification.
The goal of the day came from former Italy striker Christian Vieri, who netted from inside the centre circle to give Atalanta a 3-1 win over Siena.
Towards the bottom, Chievo helped their survival cause with a 1-0 win over Claudio Ranieri’s Parma, who are now one point above the last relegation place occupied by Siena.
Meanwhile Juventus drew 2-2 at Cesena to leave them leading the Italian second division championship by six points.
In Germany Markus Rosenberg scored a hat-trick to give Werder Bremen a 4-1 win at Hertha Berlin, keeping the Bundesliga’s three-way title race finely poised with two games left.
With 32 games gone, Schalke 04 lead the standings on 65 points after a 1-0 win at home to Nuremberg on Saturday. VfB Stuttgart are second, a point behind them, following their 2-0 success at home to Mainz. Werder’s victory on Sunday keeps them in third on 63 points. Bayer Leverkusen lost 2-1 at home to Arminia Bielefeld in yesterday’s other game.
Meanwhile Ajax Amsterdam beat AZ Alkmaar on penalties to clinch their 17th Dutch Cup. The match ended 1-1 after extra time, with Alkmaar taking an early lead through Moussa Dembele before Klaas Jan Huntelaar equalised early in the second half. Edgar Davids scored the 16th penalty to seal victory for the holders after Maarten Stekelenburg saved the attempt from Ryan Donk.