Betis never gave up and pushed for an equaliser deep into added time but were unable to prevent a defeat which halted a four-game winning streak in the league.
The win tightened Sevilla's hold on fourth spot as they moved to 51 points, six clear of fifth-placed Real Sociedad and nine ahead of Betis, who are sixth, with a game in hand.
It was also a therapeutic win after Julen Lopetegui's side were knocked out of the Champions League at the last 16 stage by Borussia Dortmund on Tuesday and lost a Copa del Rey semifinal tie to Barcelona the previous week.
Novel coronavirus restrictions prevented fans from attending what is widely seen as the most passionate derby in Spain but did not deter hundreds of Sevilla supporters giving their side a noisy reception when they arrived at the stadium.
"The team really needed the victory and we're very happy to have won such a special game and to be able to stay in the top four," said Sevilla midfielder Joan Jordan.
"Our fans came out to support us when we arrived and it was spectacular and I hope we can have our fans back as soon as possible."
Betis have had a stop-start season under Manuel Pellegrini but their recent run of form had revived hopes of qualifying for European football next season and victory here would have seen them move within three points of their neighbours.
They had a strong penalty appeal turned down when Sergio Canales was felled by Sevilla keeper Bono and had three clear chances to level in the closing stages, with striker Borja Iglesias missing their best effort from point-blank range.
Moments later, Sevilla defender Diego Carlos raced to clear the ball off the line following a goalmouth scramble.
"This is a very painful defeat," said Canales.