Leroy Sane and Raheem Sterling struck late as 10-man Manchester City snatched a dramatic 3-2 win at Schalke on a night dominated by VAR controversy.

The unfancied Germans turned the first leg of their Champions League last-16 tie on its head when they were awarded two penalties late in the first half, the first after a lengthy and farcical VAR stoppage.

Both were confidently struck home by Nabil Bentaleb, cancelling out Sergio Aguero’s opener, but Sane’s stunning leveller against his former club revived City’s hopes after Nicolas Otamendi was sent off. Sterling then stole in for a remarkable last-minute winner.

Raheem Sterling celebrates his winner
Raheem Sterling celebrates his winner (Michael Probst/AP)

That assured City of the advantage heading into the return at the Etihad Stadium, but fallout from a clash they were expected to win comfortably could rage for some time.

The main talking point was Schalke’s equaliser after Otamendi was adjudged to have handled, with play held up for around three minutes. It was unclear whether it was intentional and it also seemed the referee’s pitchside monitor was broken.

It was a breathless encounter. Schalke, 14th in the Bundesliga, had largely been written off before the game and they began as if their only ambition was damage limitation.

Chances duly arrived for City with Aguero having one charge halted by Ralf Fahrmann and then having a header saved by the goalkeeper.

Kevin De Bruyne also drove a shot straight at Fahrmann and Aguero, looking menacing, had another couple of efforts deflected wide.

Schalke contributed to their own downfall as City grabbed the lead after 18 minutes, with David Silva robbing Salif Sane and squaring to Aguero for a simple tap-in.

Sergio Aguero, right, opens the scoring
Sergio Aguero, right, opens the scoring (Martin Meissner/AP)

De Bruyne fired at Fahrmann again as City sought a second but the visitors showed signs of sloppiness as Mark Uth seized on a loose ball and curled a shot wide.

Schalke’s highly contentious equaliser also came after another City mistake as De Bruyne lost possession to Weston McKennie, who then released Daniel Caligiuri.

Caligiuri’s long-range shot was deflected wide by Otamendi and initially a corner was given. Caligiuri, however, protested furiously that the City defender had handled and VAR eventually agreed after a delay in which there was much frustration and confusion.

Having been told there may have been a clear and obvious mistake, referee Carlos Del Cerro Grande should have had the option to review the incident himself.

Yet while debate raged over whether Otamendi’s handling had been intentional, it was reported the pitchside monitor was broken and the Spanish official was told to award the penalty.

The whole affair was farcical but Bentaleb did not complain. He accepted the gift and blasted home the penalty before repeating the trick a few minutes later after Fernandinho was adjudged to have fouled Salif Sane.

Otamendi and Fernandinho were booked over those incidents, ruling them out of the second leg even before the Argentinian went on to have that rubber-stamped by getting sent off after the break.

Nabil Bentaleb was on the spot for Schalke
Nabil Bentaleb was on the spot for Schalke (Michael Probst/AP)

Sterling, De Bruyne, Aguero and Ilkay Gundogan all had good efforts early in the second half and Bernardo Silva wanted a penalty but nothing was given.

City’s night took a dramatic turn for the worse in the 68th minute when Otamendi was booked for a second time for a poor challenge on Guido Burgstaller and had to leave the field.

It seemed City were running out of ideas when Sane, sent on to replace Aguero after 78 minutes, levelled with a brilliant free-kick five minutes from time.

City had been saved and they went on to snatch it when Sterling took advantage of poor defending to seize on a long ball and score.