The hosts ended a three-game winless run to move within two points of fifth-placed Real Sociedad, while Osasuna continued to struggle on their travels.
Osasuna had an early opportunity to take the lead when Flavien Boyomo headed wide from a corner in the fourth minute. Sevilla responded through Felix Correia, who fired a volley off target, before Ante Budimir wasted another promising chance for the visitors.
Sevilla broke the deadlock in the 24th minute with an excellent attacking move. Youssouf Fofana flicked Correia's pass into the path of Isaac Romero, who finished confidently past Aitor Fernandez for his third goal of the season.
Romero's strike made him Sevilla's leading scorer, although the club's 15 league goals at that stage had been shared among 12 different players. The hosts grew in confidence after taking the lead, with Castrin shooting over and Chidera Ejuke forcing Fernandez into a low save.
Sevilla faced a more frustrating spell after the break as fouls and interruptions disrupted the contest. However, they began to threaten again midway through the second half, with Fernandez tipping Fofana's free-kick behind before Juan Iglesias struck the post with a volley.
Fernandez produced another impressive save to deny Kike Salas late on, but Sevilla finally secured the points eight minutes from time. Correia's effort took a deflection on its way into the net, giving him his second goal of the season and sealing the victory.
The result extended Sevilla's winning run at home against La Liga sides outside the traditional top three to five matches. Osasuna, meanwhile, remain 12th after winning just one of their last 12 away league games, drawing two and losing nine.