Brazil forward Raphinha scored twice to help Barcelona secure a 3-2 win at Paris St Germain in a lively Champions League quarter-final first leg.
PSG forward Kylian Mbappe was nowhere to be found in Parc des Princes as five-times European champions Barca managed to neutralise France's captain, who was often frustrated in his attempts up-front.
Xavi Hernandez's side dominated proceedings early on against the French side still looking for a first Champions League crown. Raphinha gave the visitors the lead with a rebound strike in the 37th minute after goalkeeper Gianluigi Donnarumma failed to clear a cross from his box.
Donnarumma looked nervous throughout the match, showing bad timing and making errors that almost led to Barcelona scoring the opener earlier in the first half.
However, PSG looked transformed after the break with manager Luis Enrique switching things up and bringing on forward Bradley Barcola for Marco Asensio.
The attacking change resulted in the equaliser in the 48th minute when Ousmane Dembele smashed the ball into the top corner. Barca were still reeling when the hosts took the lead through Vitinha who stroked the ball in two minutes later from a quick counter attack.
But Raphinha's deft volley in the 62nd minute from a brilliant long pass by substitute Pedri brought the match level again, silencing the home crowd.
Andreas Christensen then took advantage of a static Donnarumma to jump unchallenged in the six-yard-box and head in from a corner 13 minutes from time to give the Spanish side a narrow advantage going into next week's second leg.
"It was a spectacular night, not only for me, but for the team as well," Raphinha told reporters.
"We have been working very hard to come out and play like we did, showing our grit with such a good atmosphere is a very positive sign moving forward."
Advantage Atletico
Atletico Madrid struck twice in a dominant first half but had to survive a late fightback from Borussia Dortmund before earning a 2-1 win in their quarter-final first leg.
The Spaniards, looking for their first semi-final spot in seven years, put the visitors on the backfoot with a frenetic high-pressing game and it paid off after four minutes with Dortmund keeper Gregor Kobel delaying a pass to Ian Maatsen and Rodrigo De Paul intercepting it to slot in.
Only three minutes later Kobel pulled off a sensational one-handed save to push Axel Witsel's backheel flick over the bar but the Germans were seriously struggling to get the ball out of their own half.
Their best chance was a low show by Maatsen that Atletico keeper Jan Oblak pushed wide.
The Spanish side scored again courtesy of another defensive blunder as Samuel Lino, who will miss the return leg next week after being booked, doubled their lead in the 32nd from an Antoine Griezmann assist.
The introduction of Julian Brandt after the break instantly gave Dortmund more punch up front but Lino forced another superb Kobel save in the 75th front before Sebastien Haller cut the deficit in the 81st minute to improve the Germans' odds going into next Tuesday's return leg.
Defender Mats Hummels, making his 500th appearance for Dortmund, then kept them in the game, slid in to stop Angel Correa.
The Germans missed two chances to equalise late in the game, with Jamie Bynoe-Gittens' deflected shot in the 87th bouncing off the crossbar and Brandt's last-gasp header also hitting the woodwork in stoppage time.
Security had been tightened around the Metropolitano stadium following a threat of attacks by the resurgent Islamic State militant group with hundreds of officers inside and outside the stadium.
- Reuters