Manchester City claimed a slender advantage in their Champions League semi-final against Real Madrid after a dramatic 4-3 victory at the Etihad Stadium.
The Premier League leaders raced into a 2-0 lead in a pulsating first-leg encounter with goals from the irrepressible Kevin De Bruyne and Gabriel Jesus in the first 11 minutes.
Real responded through the prolific Karim Benzema before Phil Foden and Vinicius Junior traded goals early in the second half.
Bernardo Silva gave City a two-goal advantage but Benzema scored a cheeky penalty – his 41st goal of the season in as many appearances – to cut the deficit once again.
Both sides spurned numerous other chances in a compelling and breathless clash that set the stage for a fascinating second leg next week.
City may regret not making the most of a number of early opportunities as they stormed out of the blocks. They could almost have put the tie out of sight in the opening half-hour but Real, after fine comebacks against Paris St Germain and Chelsea in the previous two rounds, fought back again.
Real were sluggish and sloppy and continually left spaces for the hosts to exploit. Some of Foden’s touches were exquisite and De Bruyne’s throughballs were a constant danger.
It was De Bruyne who got City off to the dream start, heading their opening goal after just two minutes from a Riyad Mahrez cross.
The atmosphere crackled and City took further inspiration, doubling their lead nine minutes later.
Foden showed great control before laying off to De Bruyne, who drilled a low ball into the box for Jesus. The Brazilian had his back to goal but, buoyed by the four-goal haul against Watford that earned him a place in the side, was too quick for David Alaba. He turned sharply, wrongfooting the defender and blasted a low shot past Thibaut Courtois.
City went close again as Oleksandr Zinchenko fired wide and Mahrez infuriated manager Pep Guardiola by hitting the side-netting rather than squaring for Foden, who later shot wide himself.
Yet as well as City were playing, they did look vulnerable at the back. Guardiola’s gamble in rushing back John Stones from injury to play at right-back in the absence of Joao Cancelo and Kyle Walker also backfired.
The England international struggled and was caught out as Benzema crossed and Alaba glanced a header wide.
City failed to heed that warning and Real scored through the same route, this time Ferland Mendy crossing for Benzema to divert in. Stones was replaced by Fernandinho moments later.
City upped the tempo after the break and hit the post through Mahrez. Foden’s follow-up attempt was blocked by Dani Carvajal but he made no mistake in the 53rd minute as he got on the end of a fine cross from makeshift right-back Fernandinho to head City’s third.
Yet again from a position of control, City allowed Real back into the game. Vinicius turned Fernandinho out wide and was too quick for the rest of the defence, racing into the box to slot into the bottom corner.
It could even have been 3-3 soon after as Eder Militao found space but aimed his header at Ederson.
Such was the tension that Guardiola was booked for coming out of his technical area.
City were determined to add to their tally and their fourth came after referee Istvan Kovacs played a good advantage when Toni Kroos felled Zinchenko on the edge of the area. Real stopped expecting the whistle to be blown but Silva played on and smacked a shot into the top corner. They pushed on even after that, with Mahrez inches away from another.
Real were not done and pulled another one back eight minutes from time with a Panenka penalty from the cool Benzema after Aymeric Laporte handled.
The best videos delivered daily
Watch the stories that matter, right from your inbox