(James 8', Lewandowski pen. 64')
After three straight league defeats and an underwhelming draw against FC Porto in the Champions League, Domenico Tedesco and his team looked to go back to basics against Bayern Munich – and that meant focusing on the defense which was the bedrock of their relative success last season.
But that lasted all of eight minutes before James lost Sebastian Rudy in the box and headed home Joshua Kimmich's corner at the near post to give Bayern the lead.
"That was my fault, no question," admitted Rudy to Sky post-match. "I saw him too late and by then it was too late to stay with him."
"It's a good corner and a good run from James but we should still be defending that better," added goalkeeper Ralf Fährmann. "But it's not just one person's fault; we're all culpable."
Tedesco instructed his players to draw closer to one another and present a more compact opponent for Bayern and it appeared to work as the Royal Blues kept the score at 1-0 at halftime – despite David Alaba hitting the bar from a free-kick 35 yards out.
The hosts had half chances after the break as well, Mark Uth drawing a save from Manuel Neuer, but they soon shot themselves in the foot. Or rather, Alessandro Schöpf kicked James in the foot.
The Colombian had already danced past Schöpf into the box when the Austrian inexplicably stuck out a foot and brought him down. The referee pointed to the spot and Robert Lewandowski gave Ralf Fährmann no chance.
"Against a possession team like Bayern, you really can't be conceding dangerous set-pieces," said Fährmann. "We're conceding too many goals at the moment anyway. Maybe it's a lack of concentration, maybe it's bad luck, but there's no excuse. The coach gives us the instructions and it's up to us to start acting on those."
One player who wasn't happy with all of Tedesco's instructions was Franco Di Santo, who verbally expressed his displeasure at being substituted. In contrast, Franck Ribery was also visibly annoyed at being substituted in the 83rd minute but obeyed Niko Kovac's order without question.
It's a difference in attitude which sets Bayern aside from their rivals just as much as their footballing superiority.
As it happened:
Full time! Bayern ease over the line to victory, while Schalke stay winless after four games for the third time in their history.
89' Sandro Wagner goes into the book for a needlessly late tackle on Naldo. The Schalke fans are streaming towards the exits and out into the Gelsenkirchen rain.
86' "Everything just works for FC Bayern" - cutting edge analysis from Lothar Matthäus on Sky TV.
83' Substitution for Bayern: Ribery is replaced by Gnabry
The Frenchman is NOT happy about being brought off. You have to admire that attitude. That's what sets Bayern apart just as much as their footballing quality.
80' Caligiuri feels he is fouled by Alaba down by the corner flag but the referee doesn't agree. The Schalke fans in that part of the stadium are quite rightly aggrieved.
78' Substitution for Bayern: Lewandowski is replaced by Wagner
77' [See minute 29] "He's not going to shoot from there, surely?" Yes, Alaba has done it again! This free-kick isn't quite as far out but the Austrian still forces a save from Fährmann.
73' Substitution for Schalke: Uth is replaced by Burgstaller
72' James sets Bayern off on the counter and feeds in Lewandowski down the middle but the Pole can't bring the ball under control.
69' Frustratingly for the neutrals, Schalke were just getting back into the game. Now, Di Santo is arguing with Tedesco on the bench after being replaced by Harit.
64' GOAL! Schalke 0-2 Bayern Munich (Lewandowski - pen)
The Pole smashes the ball hard and low into the bottom corner - no chance for Fährmann.
63' PENALTY TO BAYERN MUNICH
James skips beyond Schöpf into the box, where the Austrian then inexplicably sticks a foot out from behind and trips him up. The referee points to the spot.
60' The roof is closed in the Veltins Arena which means the smoke from the Bayern supporters' pyrotechnics is hanging above the pitch as Kimmich approaches the away end to take a corner ... which is easily cleared at the near post.
57' Another half-chance for Schalke as Uth curls an effort towards the top corner but Neuer saves.
56' Schalke have finally got a grip on this game. Tedesco's side are pressing more aggressively and, more importantly, with better co-ordination.
52' McKennie is caught by James and is helped off the pitch to be replaced by Bentaleb - hopefully it's not too serious for the American. From the resulting free-kick, Embolo heads wide! Schalke can't be wasting chances like that.
50' Huge chance for Bayern! Ribery and Müller combine in the box and the Frenchman squares the ball to James who - somehow - puts it wide. Another big let-off for Schalke at the start of the second half.
+++ The second half is underway +++
Both teams are unchanged as Bayern get us underway. At half-time, broadcaster Sky treated viewers to the opinions of Schalke's new "e-sports" player, although we're not sure if "L1 plus triangle" or "more finesse shots" will help the actual footballers on the pitch. Anyway, back in real life, substantial amounts pyrotechnics going off in the away end.
+++ HALF-TIME: Schalke 0-1 Bayern Munich +++
42' At the other end, Caligiuri is booked for a late challenge on Goretzka.
42' Ribery, who has had a quiet first half, cuts inside into the box but his low shot is well held by Fährmann.
39' Rudy with a well-timed tackle to take the ball off Lewandowski on the edge of the box. It's all Bayern though.
34' Caligiuri looks to break forward but Thiago stops him in his tracks with a well-timed challenge. Bayern aren't just impressive in attack, they defend ruthlessly too. Do Schalke have the quality to compete?
32' Naldo receives a yellow card for a late challenge on Goretzka. The resulting Bayern free-kick comes to nothing.
31' Schalke's best move of the game sees Caligiuri find Di Santo on the right. He crosses but Neuer beats Uth to the ball in the six-yard-box.
29' "He's not going to shoot from there, surely?" Yes, Alaba is going to shoot from a free-kick 35 yards out - and he hits the bar. Brilliant effort.
27' McKennie looks up in the center and spots Di Santo in space on the right - but that's because he's needlessly stood offside. Unnecessary and frustrating from Schalke.
25' Huge chance for Bayern! After Rudy loses possession against his former employers, Lewandowski threads a ball through to James who opts to chip rather than shoot low - and the advancing Fährmann saves well. A let-off for Schalke.
24' Bayern Munich have been utterly dominant so far but there are signs that Schalke are starting to become more compact, working as a unit both in defense and attack. That organization was key to their relative success last season and is paramount here against Bayern, whose passing when in possession is on another level.
21' Alaba lets fly from a long way out and Fährmann has to scramble to tip the shot wide for another Bayern corner - from which Lewandowski heads over from James' cross.
17' Caligiuri floats a deep free-kick into the box. Naldo climbs well but heads wide.
16' A first sight of goal for Schalke as Di Santo drives into the box. He only has four Bayern defenders for company though and his shot is easily saved by Neuer.
14' Embolo collapses in the box under a challenge from Süle but his appeals are waved away.
8' GOAL! Schalke 0-1 Bayern Munich (James)
Despite every royal blue shirt being back in the box to defend Kimmich's corner, James, one of the smallest men on the pitch, loses his marker Rudy and nods home at the front post. That was far, far, far too easy.
7' James crosses from the right but the ball just evades the stretching Goretzka in the middle.
6' Alaba lays the ball back to Müller on the edge of the box but the Bavarian fires over. He should have hit the target there.
4' Now Kimmich tries from the opposite corner - cleared again by the towering Schalke defense.
3' Bayern win the first corner of the game after Mckennie deflects Alaba's cross behind. James' corner is cleared, as is his second attempt.
+++ KICK-OFF! +++
Schalke get us underway in Gelsenkirchen, in blue shirts and white shorts. Bayern Munich all in red.
Schalke XI: Fährmann - Sané, Naldo, Nastasic - Caligiuri, Rudy, McKennie, Schöpf - Di Santo, Embolo, Uth
Bayern Munich XI: Neuer - Kimmich, Süle, Hummels, Alaba - Goretzka, Thiago, James - Müller, Ribery, Lewandowski