Colombian striker Carlos Bacca struck twice to give the hosts a sixth consecutive league win after Cristiano Ronaldo had opened the scoring.
League leaders Atletico Madrid now lead Real by three points and have a better head-to-head record against Los Blancos as they beat Granada 1-0.
Barcelona moved into second place, a point behind Atletico, with a 3-0 win over Celta Vigo at the Camp Nou thanks to a double from Neymar.
But it was a bittersweet night for the Catalans as goalkeeper Victor Valdes may have played his last game for the club after suffering cruciate ligament damage that will rule him out of the World Cup.
Real were looking to react from a first defeat in 32 games on Sunday as they lost a thrilling El Clasico 4-3 to Barcelona and they started brightly with Gareth Bale and Karim Benzema going close inside the first 10 minutes.
Ronaldo did open the scoring 14 minutes in as his free-kick cannoned off Ivan Rakitic to leave Sevilla goalkeeper Beto helpless.
The lead lasted only four minutes as Bacca finished off a fine move by converting Jose Antonio Reyes’ pass from close range.
Reyes could then have put his side in front as Bacca returned the favour, but the former Arsenal man dragged his shot just wide.
However, Sevilla were grateful to Beto six minutes before the break as he brilliantly turned Ronaldo’s piledriver over the bar.
Ronaldo was somehow denied his second of the night moments later as this time he lifted the ball over Beto, but the ball struck the inside of the post and rolled across the line before being cleared by a Sevilla defender.
Madrid continued to press after the break, but were struck on the counter-attack 18 minutes from time when wonderful play by Rakitic took him past Pepe and the Croatian played in Bacca to fire home his second of the night.
Beto was called into action once more to deny Ronaldo moments later, but for all their possession Madrid failed to carve out another clear opening and their hopes of salvaging anything from the game disappeared when Bale’s free-kick flew over in the final minute.
And Real boss Carlo Ancelotti lamented his side’s inability to deal with Sevilla on the counter-attack.
“In one sense the defeat could be deserved because we didn’t prepare well for the counter-attack which Sevilla had and they scored two goals,” he said.
“We conceded two goals in the same way on the counter-attack when we needed more balance.”
However, the Italian still believes his side have a chance to redeem themsevles in the final eight games of the season.
“We need to concentrate on our own games, it is true we have lost two games in a row and that is not good at this point in the season.
“We need to believe that we can win it still. We are three points behind Atletico and two behind Barcelona, everything is still possible.”
– Destiny in Barca’s hands –
Barcelona now have the destiny of the title in their own hands as they host Atletico on the final day of the season.
However, their joy was tempered by Valdes’ injury that will keep him out of the World Cup for Spain.
Valdes collapsed to the ground holding his right knee whilst making a routine save and was in tears as he was stretchered from the field.
“Victor Valdes has ruptured the anterior cruciate ligament in his right knee that will require surgery,” the club confirmed via its official Twitter account.
“It is very bad luck and a very costly injury, too much for a game that means just three points,” Barca sporting director Andoni Zubizarreta told Barca TV.
And midfielder Andres Iniesta admitted it was difficult for the Barca players to concentrate on the game after the injury.
“It was an uncomfortable situation on the pitch. The players weren’t the same, the fans weren’t the same. Everything seemed a bit strange.
“The important thing now is that he recovers well.”
Neymar had already put the hosts in front before Valdes’ injury as he tapped home Alexis Sanchez’s cross.
Lionel Messi continued his fine run of form to make it 2-0 from a wonderful Iniesta pass on the half hour before Neymar rounded off the scoring 23 minutes from time.
It was a quieter evening at the Vicente Calderon as Atletico continued to demonstrate their title credentials with a hard-fought 1-0 win over Granada.
In a game short on clear-cut chances, it was once again Diego Costa who made the difference for Diego Simeone’s men as he headed home Jose Sosa’s corner 27 minutes from time to register his 32nd goal of the season.