Matchweek 7 in the Bundesliga delivered 25 goals in nine games, with four home wins, three away wins, two draws and three red cards, and three penalties were scored. Gladbach won their first league game of the season at Stuttgart, Hoffenheim scored all three of their goals against Bayer Leverkusen after the 78th minute, and Werder Bremen won at Mainz with two early penalties from Niclas Füllkrug. At the top, Bayern Munich and Borussia Dortmund both won and are level on 17 points. Here is how every game played out in the Bundesliga, from Friday to Sunday.
Bundesliga Matchweek 7 results at a glance
Bundesliga Matchweek 7 results, in kick-off order:
- Stuttgart 2-3 Borussia Monchengladbach
- Paderborn 1-0 Hamburg
- FC Cologne 0-0 Schalke 04
- Mainz 2-3 Werder Bremen
- Augsburg 1-1 Union Berlin
- RB Leipzig 4-0 Elversberg
- Borussia Dortmund 1-0 Eintracht Frankfurt
- Hoffenheim 3-0 Bayer Leverkusen
- Freiburg 1-3 Bayern Munich
Every stat for all 9 games is on the Bundesliga Matchweek 7 fixtures and results page.
Stuttgart 2-3 Borussia Monchengladbach
Gladbach arrived bottom of the table without a league win and left with their first. Ermedin Demirovic put Stuttgart ahead on five minutes, set up by Dzenan Pejcinovic, and then the visitors scored three times between the 38th and 66th minutes. Joe Scally equalised on 38, set up by Zento Uno, Shuto Machino made it 2-1 on 51, set up by Wael Mohya, and Mohya headed the third on 66, from a Scally pass. Demirovic headed his second on 83 minutes, set up by Jamie Leweling, but Stuttgart could not find a third. They had 70 per cent of the ball and 692 passes to 289, yet Gladbach's chances were worth more, 2.69 expected goals to 1.99, from 16 shots to 15. Four Gladbach players were booked, Florian Neuhaus, Uno, Scally and Lukas Ullrich, against two for Stuttgart. The win takes Gladbach to three points, though they stay bottom. Stuttgart slip from 13th to 15th on six.

Paderborn 1-0 Hamburg
A late goal settled a game that Paderborn controlled from the start. Paderborn had 62 per cent of the ball, 16 shots to Hamburg's nine, six on target to one, six corners to three and 1.36 expected goals to 0.42, yet it stayed goalless until the 88th minute. Then Rayan Philippe scored with his left foot, set up by Felix Götze. Hamburg had lost Fábio Vieira to injury after only 13 minutes and made a second injury change on 71, and the bookings went to Shafiq Nandja on 53 minutes and Albert Sambi Lokonga on 87 for Hamburg, with Jano ter Horst cautioned for Paderborn on 58. It was a narrow win but a deserved one. Paderborn climb from 16th to 13th on eight points. Hamburg slip from ninth to 11th on nine, with a goal difference of minus 10.

FC Cologne 0-0 Schalke 04
Cologne had the ball, the shots and the chances, and still could not find a way through. FC Cologne had 62 per cent of possession, 545 passes to 324, 14 shots to nine and five on target to one, and their chances were worth 1.20 expected goals to Schalke 04's 0.46. Schalke were forced into a double substitution on 43 minutes, with Robin Gosens and Soufiane El-Faouzi both going off injured, and they defended well for the rest of the game. Tom Krauß was booked for Cologne in first-half stoppage time, and the second half brought cautions for Junior Dina Ebimbe, Luka Lochoshvili, Vitalie Becker and Hasan Kuruçay. When the sides last met, in January 2023, that game was goalless too. Cologne stay 12th on eight points. Schalke slip from 15th to 16th on six, with one win in seven.

Mainz 2-3 Werder Bremen
Niclas Füllkrug scored two penalties in the first 25 minutes, and that was enough of a head start for Werder Bremen. He converted from the spot on seven minutes and again on 25, and Mainz pulled one back before half-time through Anthony Caci, a header on 33 minutes set up by Sheraldo Becker. Ludovit Reis made it 3-1 on 61, set up by Marco Grüll, and Jae-sung Lee headed Mainz back into the game two minutes later, from a Caci pass, but there was no equaliser. The numbers show how close it was: 18 shots to 17, eight on target each, and 2.95 expected goals for Bremen to Mainz's 1.86. Mainz had 53 per cent of the ball and 559 passes at 87 per cent accuracy. There were five bookings, Phillipp Mwene, Benedict Hollerbach and Alexander Schwolow for Mainz, Reis and Grüll for Bremen. Bremen climb from eighth to sixth on 12 points. Mainz slip from fifth to seventh on ten.

Augsburg 1-1 Union Berlin
Two red cards, a header and a quick equaliser: this one had plenty packed into it. Union Berlin were down to ten men on 19 minutes when Felix Uduokhai was sent off, and Augsburg were matched on 63 when Juma Bah was shown a red card too. Han-Noah Massengo then headed Augsburg in front on 71 minutes, set up by Fabian Rieder, and Janik Haberer equalised three minutes later with a right-footed shot. Augsburg had much the better of the rest: 66 per cent of the ball, 603 passes to 318, 25 shots to six, five on target to one, and 2.02 expected goals to 0.83. Haberer, Leopold Querfeld and Mekhi Gray were also booked for Union. Augsburg rise from tenth to ninth on nine points. Union, 17th on six, have the worst goal difference in the league, minus 12.

RB Leipzig 4-0 Elversberg
A goalless first half gave way to a comfortable win. Tidiam Gomis broke the deadlock for RB Leipzig on 48 minutes with his left foot, set up by Antonio Nusa, and Rômulo doubled the lead on 66, set up by Nusa again. Christoph Baumgartner headed the third on 84, from a Brajan Gruda pass, and Rômulo scored his second in stoppage time, on 90+4, set up by Abdoul Koné. Leipzig's chances were worth 3.03 expected goals to Elversberg's 0.76, from 13 shots to five and six on target to one, even though Elversberg had more corners, six to four. Leipzig had 55 per cent of the ball and 487 passes. There were only two bookings, Rocco Reitz for Leipzig and Lasse Günther for Elversberg. Leipzig climb from seventh to fifth on 12 points. Elversberg slip from sixth to eighth on ten.

Borussia Dortmund 1-0 Eintracht Frankfurt
Dortmund waited, and then needed only one goal. Borussia Dortmund had 18 shots to eight, 13 corners to one and 58 per cent of the ball, but it stayed 0-0 until Maximilian Beier scored on 80 minutes, 12 minutes after coming on as a substitute, set up by Jobe Bellingham. Dortmund's chances were worth 1.72 expected goals to Eintracht Frankfurt's 0.85, with five shots on target to three. Frankfurt were booked twice, Nnamdi Collins on 58 minutes and Farès Chaïbi on 63, and Dortmund were not booked at all. The win keeps Dortmund unbeaten after seven games, second on 17 points and level with Bayern Munich, behind only on goal difference. Frankfurt drop from 11th to 14th on eight points.

Hoffenheim 3-0 Bayer Leverkusen
Nothing in the first 78 minutes suggested a rout, and then it arrived all at once. Hoffenheim had 42 per cent of the ball and 355 passes to 507, yet they had 20 shots to Bayer Leverkusen's nine, six on target to one, and 3.30 expected goals to 0.42. Andrej Kramaric converted a penalty on 79 minutes, after a VAR review, Alexander Prass made it 2-0 on 89 minutes, set up by Kramaric, and was shown a second yellow card on 90+1. Max Moerstedt then added a third in stoppage time, on 90+5. Leverkusen's cautions went to Equi Fernández, Patrik Schick and Facundo Medina among others, and Hoffenheim's to Leon Avdullahu and Adam Daghim. Hoffenheim climb from 14th to 10th on nine points. Leverkusen stay fourth on 13.

Freiburg 1-3 Bayern Munich
Bayern Munich stayed unbeaten and top of the table, and the numbers say they were comfortable: 3.15 expected goals to 0.84, and nine shots on target to five, even though both sides had 17 shots. Dayot Upamecano put Bayern ahead on 16 minutes, set up by Michael Olise, and Serge Gnabry made it 2-0 on 42, set up by Nathaniel Brown. Freiburg got a goal back on 82 minutes, but it was an own goal from Tom Bischof, and Olise sealed the win in stoppage time, on 90+5. Bayern had 56 per cent of the ball and 523 passes to 406. Lucas Höler, Niklas Beste and Maximilian Eggestein were booked for Freiburg, Jonathan Tah for Bayern. Bayern lead on 17 points with a goal difference of plus 19, the best in the league. Freiburg stay third on 13.

Bundesliga table after Matchweek 7, and what comes next
Seven games in, Bayern Munich lead the Bundesliga table on 17 points, with Borussia Dortmund level on 17, both unbeaten, and Bayern ahead on goal difference. Freiburg and Bayer Leverkusen are next on 13. At the bottom, Gladbach are 18th on three points despite their first win, with Union Berlin 17th on six. Matchweek 8 brings the top two together: Bayern Munich v Borussia Dortmund on Saturday 31 October is first against second, and Augsburg v Freiburg the same day is ninth against third. Gladbach also play on Saturday, at home to Paderborn, in Borussia Monchengladbach v Paderborn. Every fixture is on our Bundesliga fixtures page.