Roma earned a first-leg lead on their travels after fighting back to defeat Ajax 2-1 in Amsterdam in the Europa League quarter-finals.
Ajax took a 39th-minute lead through Davy Klaassen but spurned a great chance to double their advantage when captain Dusan Tadic saw his 53rd-minute penalty saved by Pau Lopez.
That proved a turning point at the Johan Cruyff ArenA as Roma equalised four minutes later through Lorenzo Pellegrini's free-kick before Roger Ibanez - who fouled Tadic to concede the penalty - snatched a superb 87th-minute winner.
Villarreal were also celebrating a first-leg advantage from their trip to Croatia after beating Dinamo Zagreb 1-0.
Gerard Moreno's penalty on the stroke of half-time was enough to hand Unai Emery's side the lead in the tie ahead of their bid to reach the semi-finals for the first time since 2016.
The winners of Roma and Ajax's tie will set up a semi-final with either Granada or Manchester United, who took a significant step towards the last four with a 2-0 victory at Estadio Los Carmenes.
Marcus Rashford put 2017 winners United ahead in the 31st minute against Granada in Spain before Bruno Fernandes secured a 2-0 victory with a late penalty.
The only away team not to win on Thursday night was Slavia Prague, but they still managed to earn a creditable 1-1 draw against Arsenal at the Emirates Stadium.
Arsenal substitute Nicolas Pepe looked to have snatched victory for the Gunners when he chipped home with four minutes to go, but Slavia responded through Tomas Holes' header deep into stoppage time to snatch a draw.