Erling Haaland was on target with his 45th goal of the season, surpassing Ruud van Nistelrooy and Mohamed Salah to become the Premier League’s all-time most scorer in a single season.
Rodri scored a stunning goal in the 27th minute with a soaring left-foot shot into the top corner.
Bayern also had chances, including one from Leroy Sane, a former City forward, who forced Ederson into a crucial stop early in the second half.
After Jack Grealish grabbed the ball from Dayot Upemecano with 20 minutes left, City increased their lead when Haaland sent a superbly placed cross for Bernardo Silva to score.
Six minutes later, Haaland scored City’s third goal after latching onto John Stones’ headed pass to slip a finish past Bayern goalkeeper Yann Sommer. Haaland was not to be stopped.
Elsewhere, Inter Milan earned a well-deserved 2-0 victory away at Benfica, and Romelu Lukaku’s 82nd-minute penalty gave them a good chance to go to the Champions League semifinals.
Nicolo Barella’s downward header startled the Portuguese league leaders and gave Inter a crucial advantage in a closely contested match.
Simone Inzaghi’s team will fancy their chances of winning in front of their home crowd in the return leg on April 19.