Goals from Yaroslav Rakitskiy and Facundo Ferreyra helped Shakhtar Donetsk to a 2-1 win over Braga as the Ukrainian side put one foot in the Europa League semi-finals at the Estadio Municipal.
Rakitskiy scored from a corner in the closing stages of the first half, converting his side's first chance of note, before Ferreyra made it two with 15 minutes left on the clock.
Wilson Eduardo netted a late and potentially crucial goal for Braga, who had dominated proceedings before the opener, with both Rafa Silva and Pedro Santos wasting chances to break the deadlock.
Paulo Fonseca's men remained the better side after the break, but they failed to restore parity and were made to pay for their profligacy.
The Portuguese side face a tough task to turn things around in next week's return leg, having won just two of their five away games in Europe this campaign.
Shakhtar goalkeeper Andriy Pyatov was called into action for the first time after just two minutes, punching Silva's attempt from the edge of the box over the bar for a corner.
Santos then failed to beat the wall with his free-kick from a promising position, before he blasted a shot high from 20 yards after some good work from Nikola Stojiljkovic.
Braga continued to dominate and Rakitskiy did well to intercept Marcelo Goiano's low cross from the left before Silva could get to it, while Ricardo Ferreira headed just over following a corner from Santos.
Shakhtar failed to create much in the first half but opened the scoring in the 45th minute from their first real opportunity - Rakitskiy beat Braga goalkeeper Matheus with a volley at the far post after Taison's corner.
Maksym Malyshev should have doubled Shakhtar's lead in the 48th minute when he beat his marker to Ismaily's low cross from the left, only to see his attempt from close-range take a deflection off a defender and end up in the hands of Matheus.
Silva was unfortunate not to draw Braga level just minutes later when he hit the bar after Shakhtar failed to clear a corner.
Braga pushed hard for an equaliser and the hosts saw Santos' powerful strike from a narrow angle go inches wide, with Nikola Vukcevic's shot also narrowly missing the target after taking a deflection.
However, Ferreyra doubled Shakhtar's lead in the 75th minute with a calm finish from inside the six-yard box after being set up by Marlos.
Eduardo pulled one back for the hosts in the 89th minute when he headed home a cross from Baiano, but it was too little, too late as Shakhtar won 2-1.