Schalke 0 Bayern Munich 2: James and Lewandowski deliver another win
Bayern Munich's 100 per cent start under Niko Kovac continued as goals in either half from James Rodriguez and Robert Lewandowski earned them a 2-0 win over struggling Schalke.
The reigning Bundesliga champions have won each of their first four league games under Kovac, who has also presided over victories in the DFL-Supercup, DFB-Pokal and Champions League.
James put them ahead at the Veltins-Arena by nodding in from a corner and when he was tripped by Alessandro Schopf inside the box, Lewandowski converted the spot-kick to wrap up the three points.
Schalke, who finished as runners-up last year, have now lost each of their first four Bundesliga games.
There would have been huge frustration in the Schalke ranks over how they conceded the eighth-minute opener as ex-Bayern man Sebastian Rudy did not track James, whose header from Joshua Kimmich's near-post corner was not dealt with adequately by Ralf Fahrmann.
Fahrmann saved a penalty against Porto in the Champions League in midweek, though he was also later beaten from 12 yards, but could only stand and watch as David Alaba's swerving free-kick from 30 yards crashed back off the crossbar.
James had an excellent chance to double Bayern's advantage less than five minutes after the restart, but he somehow fluffed his lines when Franck Ribery's pass presented him with an open goal.
However, the Colombian made amends by winning the penalty that Lewandowski slotted into the bottom-right corner in the 64th minute.
Schalke boss Domenico Tedesco took off Franco Di Santo and he responded by arguing with his coach, whose evening would have got worse had Fahrmann not kept out another Alaba free-kick.
What it means: Kovac's winning run continues
Eyebrows were raised when Kovac took over Bayern but his team have responded to the sceptics with a hugely impressive start. This was their biggest test in the Bundesliga so far and they were far too strong for a side that finished directly beneath them in 2017-18.
James makes the difference
By scoring one goal and winning the penalty that led to the other, James made the biggest impact on this game. His second-half miss was inexplicable but ultimately only a footnote in the grand scheme of things.
Same end, same celebration pic.twitter.com/AjBWfsulXg— Bundesliga English (@Bundesliga_EN) September 22, 2018
No revenge for Rudy
Midfielder Rudy was the one man in the Schalke team with added motivation given Bayern sold him after last season. However, rather than proving his old employers wrong, the Germany international failed to impress as he allowed James to run off him and head the visitors ahead.
Schalke travel to Freiburg on Tuesday for their next Bundesliga fixture, while Bayern return home to face Bavarian rivals Augsburg on the same day.