After Felipe Caicedo gave Espanyol the lead at half-time with a stunning strike, Sergio Garcia and Lucas Vazquez stretched the hosts' advantage in the two-legged quarter-final, only for Bacca to notch a vital away goal in second-half stoppage time.
Sevilla will host the second leg next week.
Espanyol hit the front in the 18th minute, with Caicedo receiving Victor Sanchez's reverse pass on the edge of the box, turning away from his marker and then slamming the ball into the top corner.
The goal was the Ecuadorian striker's eighth of the season in all competitions.
It took until the 74th minute for Espanyol to double their lead with Alejandro Arribas handling the ball in the box to give Garcia a chance from the spot.
The home side's skipper made no mistake and seven minutes later released Vazquez on the counter-attack for the substitute to slide a shot past Sevilla goalkeeper Sergio Rico.
Bacca set up the second leg in the 91st minute, however, with Aleix Vidal's long throw causing a scramble in Espanyol's defensive penalty area, before the ball fell to Sevilla's Colombian forward, who slammed it home.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.