City claimed a remarkable victory in Pep Guardiola’s 300th game in charge to become the quickest English side to reach 50 wins in the Champions League.
Ake broke the deadlock with a powerful header, before Nordi Mukiele turned into his own net to double City’s lead.
Christopher Nkunku headed home from six-yards to pull one back for the visitors, but Riyad Mahrez converted a penalty in emphatic fashion to ensure City went in 3-1 up at half-time.
Nkunku headed in his second to reduce the deficit shortly after the restart, but City hit back immediately as Grealish scored a fine goal, but Leipzig came back again as Nkunku sealed his hat-trick with an angled drive.
Again, Guardiola’s side responded instantly thanks to Joao Cancelo’s unstoppable 25-yard effort and, after former City player Angelino was dismissed for a second bookable offence, Gabriel Jesus tapped in at the far post to complete the scoring.