Lionel Messi struck four minutes from time to earn Barcelona a vital three points against Atletico Madrid as they moved back to the top of La Liga.
Atletico dominated the early stages of the game at the Wanda Metropolitano but couldn't find a way past Marc-Andre ter Stegen in the Madrid rain. The German goalkeeper made stunning saves from Mario Hermoso and Alvaro Morata.
Barca improved after the break and won it through Messi's ninth goal of the campaign. The Argentine, cutting in from the left, played a one-two with Luis Suarez before firing past Jan Oblak.
Positives
This was a huge result for Barca. They have been poor away from home this season, and they were under pressure after seeing Real Madrid leapfrog them at the top of the table on Saturday. Beating Atletico, whom they are now six points clear of, having played one fewer game, will give them huge confidence.
Other than that, the positives were two fairly common ones: Ter Stegen and Messi.
Negatives
Although the result was important and the performance wasn't a disaster, there was a lot missing. Atletico dominated the first 30 minutes, and only the woodwork and Ter Stegen kept them out. Barca did improve, but they are still not playing to their best as a collective and are reliant on individuals.
The Blaugrana will also hope a knee injury suffered by Gerard Pique was not serious. With Nelson Semedo and Jordi Alba already sidelined, they can ill afford to lose another defender.
Manager rating out of 10
6 -- Injuries and suspensions left Ernesto Valverde with few decisions to make. However, his Barca side failed to switch on from the off and were lucky to make the break goalless. Once again, he was reliant on Messi magic.
Player ratings (1-10; 10 = best. Players introduced after 70 minutes get no rating)
GK Marc-Andre ter Stegen, 9 -- Made two world-class saves, the first from Hermoso with his legs and the second from Morata with his right hand. His distribution was also top drawer all night.
DF Sergi Roberto, 7 -- One of his best performances of the season. Atletico caused no problems down his flank, and he made a clever dummy run to create space for Messi's goal.
DF Gerard Pique, 5 -- A mixed night for the centre-back but overall probably a bad one. Hit the bar with a header at the end of the first half but picked up his 10th booking of the season in just his 17th game. He was lucky not to get the 11th, too, for a sliding challenge on Morata and was then taken off with an injury after being on the end of late tackle from Vitolo.
DF Clement Lenglet, 6 -- Didn't do anything fancy but did OK in a defensive sense. Will have to improve, though, with Samuel Umtiti fit and breathing down his neck for a place.
DF Junior Firpo, 4 -- Atletico's best moments came from the right side as they seemed to target Junior. The left-back almost scored an own goal, deflecting a Hermoso cross on to the post, and does not currently look capable of challenging Jordi Alba for his place when he returns from injury.
MF Ivan Rakitic, 6 -- Filled in for the suspended Sergio Busquets at the base of the midfield. Missed a great chance in the first half and didn't do too badly on what was his third start of the season.
MF Arthur Melo, 7 -- The Brazilian was Barca's motor as they finally got into the game toward the end of first half. One quarterback-like pass to Messi was particularly good. Surprisingly taken off after the break.
-- ESPN La Liga fantasy: Sign up now!
-- When does the transfer window reopen?
MF Frenkie de Jong, 7 -- Always one of Barca's best players. Rarely gives the ball away, and his driving runs are increasingly creating chances.
FW Lionel Messi, 9 -- Has rarely worked as hard all season as he did at the Wanda. Set up Rakitic's chance in the first half and seemed on a one-man mission to win the game at times. Succeeded in the end, with his dramatic later winner.
FW Luis Suarez, 6 -- Slow to a couple of balls but a threat when in and around the area. Whistled one shot from 18 yards just wide and sent another one straight at Oblak. Set up Messi's goal.
FW Antoine Griezmann, 6 -- Whistled on his return to Atletico, and it took him 30 minutes to get into the game, but he grew from there, linking with Suarez and Messi when moving inside from the left. Wasted the best chance that came his way, though it was a difficult one.
Substitutes
MF Arturo Vidal, 6 -- Came on for Arthur to disrupt a game that didn't particularly need disrupting.
DF Samuel Umtiti, N/R -- Made a late appearance in place of the injured Pique.