Barcelona came back from a goal behind to beat Porto and seal a spot in the Champions League last 16.
Brazilian winger Pepe hammered home a rebound to give the Portuguese visitors the lead after half an hour.
However, Porto’s advantage lasted just two minutes as Joao Cancelo equalised with a stunning curling strike after cutting inside from the left.
Porto goalkeeper Inaki Pena made several fine saves before Joao Felix tucked home a 56th-minute winner.
Barcelona are guaranteed to qualify from Group H with Porto and Shakhtar Donetsk – who are both three points behind – playing each other in their final game.
Although they have not yet won the group, they will only need to avoid defeat against point-less Royal Antwerp to finish top.