City took the lead through Raheem Sterling but were then playing catch-up as Monaco drew level thanks to Radamel Falcao’s header and then went ahead with a powerful finish from 18-year-old Kylian Mbappe five minutes before halftime.
South American poachers Sergio Aguero for City and Falcao, who also missed a penalty, then traded blows with Aguero equalising for 2-2 and then 3-3 after Falcao’s exquisite chip gave Monaco the lead for the second time at The Etihad.
City, however, then pulled clear as Stones tapped in at the far post and Sane rolled the ball into an empty net to give City a two-goal advantage ahead of the return on 15 March.
City manager Pep Guardiola had called Monaco “killers” in the box before the game and while they showed just why they are European football’s most deadly assassins, they were embarrassingly fragile at times at the back.