© Getty Images
The visitors made their early possession count 14 minutes in when Cristiano Ronaldo's free kick deflected off Bacca's arm to find the back of the net.
Bacca made amends for the opening goal just five minutes later, drilling the ball in low to get Sevilla back on level terms.
The Madrid side had the better of the chances before the break, as Ronaldo had a shot tipped over, while Bale also saw his effort saved, ensuring that the sides were level at half time.
Both sides came out attacking in the second half, as Bacca curled a powerful strike just high, while Bale applied pressure at the other end.
However, Sevilla were able to take the lead for the first time inside the final 20 minutes when Bacca blasted the ball in from a Rakitic delivery.
Ronaldo almost got Real back on level terms straight away, but Beto continued to frustrate the Madrid side's playmaker with another save.
As the visitors tried to force a desperate equaliser in the final minutes of the match, Bale went for goal from long range, but failed to trouble the Sevilla stopper, while Xavi Alonso tried to lob the ball in from the edge of the box, but his finish was high and wide.
With Atletico Madrid and Barcelona also winning this evening, Real drop to third in the La Liga table.