Real Madrid secured a scrappy 1-0 victory over RB Leipzig in the first leg of their Champions League last-16 clash on Tuesday.
In a game which was full of attacking endeavour but often lacking in quality, it took a moment of magic from Brahim Diaz early in the second half to fire Madrid to a crucial win away from home.
Leipzig, who had an early goal ruled out, had plenty of good chances to find the back of the net but often came unstuck at the hands of the excellent Andriy Lunin in the Madrid goal.
How the game unfolded
Leipzig had the ball in the back of the net inside a bizarre first two minutes. Dani Carvajal strangely whipped the ball all the way from the right side of his box to the left to concede a corner, the aftermath of which saw Benjamin Sesko head home, but the flag was quickly raised and a VAR check ruled out the goal for reasons which were not immediately clear. A foul on goalkeeper Lunin appeared to be the justification.
Sesko then poked an effort towards goal just moments later but could not generate enough power to test Lunin, and the Ukraine international was called into action to deny Sesko once again ten minutes in.
Clear-cut chances were hard to find for Madrid. Toni Kroos' long-range strike was comfortably saved by Peter Gulacsi, who wasn't tested when Rodrygo failed to get enough contact on a nice cut-back from Vinicius Junior. That was about as good as it got for either side in the first half.
Just three minutes into the second half, however, Madrid stepped things up and took the lead. A glorious run from Brahim was finished with a delightful curl into Gulacsi's top corner, injecting some much-needed quality into proceedings.
Rodrygo fluffed the chance to double Madrid's advantage. Vinicius played his fellow Brazilian into the box but Rodrygo's wild swing, admittedly under pressure, went flying high and wide.
With 20 minutes to go, Vinicius' solo run ended with a toe-poke that flicked away off the post, while Lunin was needed at the other end to once again get down and deny a fierce strike from the increasingly frustrated Sesko.
Amadou Haidara sent a scorching volley heading towards Lunin's top corner as the clock ticked down but the Ukraine international was once again able to keep the hosts out and seal the win for Madrid.
Real Madrid player ratings (4-3-1-2)
GK: Andriy Lunin - 9/10 - Was active early on when Sesko had three or four sights of his goal and continued to be a major thorn in Leipzig's side with a whopping nine saves. Really impressive.
RB: Dani Carvajal - 4/10 - Not on it at all. Really unconvincing both in and out of possession and was fortunate not to pick up a booking for a crunching challenge on Xavi Simons which he seemed adamant was a clean challenge.
CB: Aurelien Tchouameni - 8/10 - Composed at the back and needed to make some big challenges to atone for errors from those around him. Always stepped up when needed.
CB: Nacho Fernandez - 4/10 - Really poor from the first minute. Couldn't cope with Sesko's power or Openda's speed. Perhaps not fully fit.
LB: Ferland Mendy - 6/10 - Typically impress defensively but his lack of attacking output continues to be a problem in a setup which does not include natural wingers.
DM: Toni Kroos - 6/10 - Dropped deeper early on when it became clear his defence wasn't comfortable, but that limited his involvement going forwards. Needed to be done, however.
CM: Eduardo Camavinga - 7/10 - Worked incredibly hard at both ends of the pitch, doing the dirty work before trying to make things happen in attack. Clearly grew frustrated with the lack of support from some around him.
CM: Federico Valverde - 5/10 - Seemed to struggle with the pace of the game, which was unusual. Didn't do nearly enough in attack despite a constant desire to get into the box.
AM: Brahim Diaz - 7/10 - Happy to get on the ball and, after an uninspiring first half, produced a moment of magic to open the scoring.
ST: Vinicius Junior - 7/10 - Vinicius was involved in everything good from Madrid and was unfortunate not to get his own goal.
ST: Rodrygo - 4/10 - Another clunky performance in attack. Couldn't figure out how to profit from the fact that most of Leipzig's defence was occupied by Vinicius.
Substitutes
SUB: Lucas Vazquez (84' for Brahim) - N/A
SUB: Joselu (84' for Rodrygo) - N/A
Subs not used: Kepa Arrizabalaga (GK), Fran Gonzalez (GK), Jacobo Ramon, Fran Garcia, Alvaro Carillo, Mario Martin, Luka Modric, Dani Ceballos, Arda Guler, Nico Paz
Manager
Carlo Ancelotti - 5/10 - This was pretty ugly. Madrid didn't have a whole lot about them at either end of the pitch, instead relying on Lunin's heroics and a moment of magic from Brahim.