The home side stretched their unbeaten run to seven matches as they moved up to 10th in La Liga table while their lowly opponents, who have lost three of their last five, remain second bottom.
Damia Abella was sent off after 35 minutes for Osasuna, while Oriol Riera claimed a late consolation but they were unable to find an equaliser in the closing minutes.
The home side started strong as Vitolo had a chance to take the lead in the first minute, but his close-range effort from the centre of the goal went just wide of the post.
Just minutes later Vitolo came close again as he got onto the end of Stephane Mbia's cross in the box but sent the ball over the crossbar as the home side began to dominate.
Carlos Bacca was next to have a go for Sevilla but Marc Bertran was quick to block his effort to keep the home side at bay.
Osasuna started to make their way into match and Riera could have put them ahead with a couple of chances midway through the first half.
His first came just outside the 18-yard box as he shot with some strength from the right forcing Sevilla goalkeeper Antonio Beto into making a save, while his next effort was weak in comparison which Beto comfortably collected.
Just after the half-hour mark Damia was clumsy in bringing down Kevin Gameiro and his professional foul brought a straight red card to end his game.
Rakitic took the resulting free-kick 25-yards out but his effort sailed over the bar.
The home side were rewarded for their dominance as they took the lead 10 minutes after the break.
Mbia provided a cross from the left which found Rakitic in the box, who made no mistake as he found the bottom left of the goal from 12 yards out to put Sevilla in front.
Unai Emery's side almost doubled their lead straight away but Alberto Moreno's shot from the left of the penalty area went just wide.
And Rakitic could have got his second had he not drilled his long-range thunderbolt over the bar.
But Sevilla's efforts paid off as Mbia again assisted as midfielder Jairo collected the ball in the right of the box and powered home for his first goal of the season.
Osasuna keeper Andres Fernandez was made to work hard and kept out two goal-bound efforts, first from Sevilla substitute Sebastian Cristoforo, then - with 10 minutes left - he made a fantastic save to hold out Bacca's close-range header.
But against the run of play and with just three minutes left, the away side managed to pull back a consolation.
Bertran provided a cross from the right wing which found Riera, who was well-placed in the box as he headed home.