Match ends, FC Bayern München 3, Bayer 04 Leverkusen 0.
Thomas Muller scored twice on his 200th Bundesliga appearance for Bayern Munich as the champions beat Bayer Leverkusen to go to the top of the table.
Muller side-footed Bayern ahead with his fourth goal of the season and scored a 60th-minute penalty after Arturo Vidal was pushed in the box.
Bayern were awarded a second debatable penalty 10 minutes later for handball which Arjen Robben converted.
The win extended Bayern's 100% start as Leverkusen lost for the first time.
As well as winning their opening two league games, Leverkusen have reached the Champions League group stages, beating Lazio in their play-off tie.
But their record in Munich is poor and they lost for the 22nd time in 28 league games against Bayern at the Allianz Arena.
German international Muller opened the scoring after 26 minutes when he steered home a cross from winger Douglas Costa.
Costa then shot against a post before Leverkusen went close to equalising with a long-range free-kick from Turkey international Hakan Calhanoglu which struck the crossbar.
Stefan Kiessling was denied by a combination of Bayern goalkeeper Manuel Neuer and defender David Alaba just after half-time.
But Bayern secured victory thanks in part to the benefit of the doubt over two penalty decisions.
Defender Roberto Hilbert was penalised on both occasions, first when former Leverkusen midfielder Vidal went down following a free-kick and then when a cross from Costa struck him on the arm.
Muller slotted home the first one but rather than completing his hat-trick, allowed Robben to score his first league goal of the season from the second.
Xabi Alonso was a top-class midfielder for Real Sociedad, Liverpool and Real Madrid before joining Bayern Munich in 2014.
But when he was sent off in a Champions League tie against Shakhtar Donetsk last season, Bayern coach Pep Guardiola claimed that when it came to running after another player the Spaniard was the worst player in the world.
But that did not stop Guardiola moving the former Spain international, 33, back from midfield into a central defensive role against Leverkusen.
With the champions missing four defenders through injury, Alonso was preferred to Dante in that position and, while barely putting a foot wrong in the game, also played a superb long pass to set up the opening goal.
Best of the rest
Cologne are third in the table after coming from behind to beat Hamburg 2-1, Anthony Modeste scoring the late winner with a controversial penalty.
Japan international Yoshinori Muto scored his first two goals in the Bundesliga in Mainz's 3-0 win over Hanover.
Australia international Mathew Leckie also scored his first goal in the competition to give Ingolstadt their second win of the season at Bavarian rivals Augsburg.
Stuttgart had goalkeeper Przemyslaw Tyton sent off and are bottom after a 4-1 defeat at home to Eintracht Frankfurt.
Borussia Dortmund play Hertha Berlin on Sunday.
- 18BernatBooked at 8minsSubstituted forCosta Santosat 73'minutes
- 6Thiago AlcántaraBooked at 19minsSubstituted forRodeat 83'minutes
- 10RobbenSubstituted forGötzeat 78'minutes
- 11Douglas Costa
- 4Costa Santos
- 13Ferreira de Souza
- 18WendellBooked at 6minsSubstituted forBoenischat 78'minutes
- 23KramerBooked at 18mins
- 10CalhanogluSubstituted forKruseat 61'minutesBooked at 72mins
- 14MehmediSubstituted forBrandtat 45'minutes
- Florian Meyer
- Shots on Target
Second Half ends, FC Bayern München 3, Bayer 04 Leverkusen 0.
Corner, FC Bayern München. Conceded by Bernd Leno.
Attempt saved. Robert Lewandowski (FC Bayern München) right footed shot from the centre of the box is saved in the centre of the goal. Assisted by Douglas Costa.
Foul by Dante (FC Bayern München).
Karim Bellarabi (Bayer 04 Leverkusen) wins a free kick in the defensive half.
Attempt missed. Kyriakos Papadopoulos (Bayer 04 Leverkusen) header from the centre of the box misses to the right. Assisted by Karim Bellarabi with a cross following a corner.
Corner, Bayer 04 Leverkusen. Conceded by David Alaba.
Attempt blocked. Karim Bellarabi (Bayer 04 Leverkusen) right footed shot from the centre of the box is blocked.
Arturo Vidal (FC Bayern München) wins a free kick in the defensive half.
Foul by Roberto Hilbert (Bayer 04 Leverkusen).
Foul by Mario Götze (FC Bayern München).
Julian Brandt (Bayer 04 Leverkusen) wins a free kick in the defensive half.
Substitution, FC Bayern München. Sebastian Rode replaces Thiago Alcántara.
Foul by Douglas Costa (FC Bayern München).
Lars Bender (Bayer 04 Leverkusen) wins a free kick in the defensive half.
Foul by Arturo Vidal (FC Bayern München).
Stefan Kießling (Bayer 04 Leverkusen) wins a free kick in the attacking half.
Delay over. They are ready to continue.
Delay in match Bernd Leno (Bayer 04 Leverkusen) because of an injury.