BERLIN — In a duel between one of Germany’s most popular sides and arguably its most hated, Naby Keita struck late as Leipzig stunned Borussia Dortmund 1-0 to win its first Bundesliga game on Saturday.

Midfielder Oliver Burke set up fellow substitute Keita to grab the winner with one minute remaining, sparking wild celebrations among the home fans.

Leipzig, unpopular among rival supporters who see it as a marketing tool for energy-drink manufacturer Red Bull, matched last season’s runner-up for intensity, and suggested it is in the Bundesliga to stay. That’s the club’s stated objective for its first season of top-flight football, consolidation before Champions League qualification becomes the target.

While Leipzig has enthusiastically embraced the concept — the city is the first in former East Germany to have a top-flight club since Energie Cottbus was relegated in 2009 — opponents resent its commercial side and rapid progress. The club was founded in 2009 when Red Bull rebranded fifth-tier side SSV Markranstaedt and financed its speedy promotion as a new entity through the lower leagues.

Dortmund is renowned for excelling beyond its means and caring for its fans, but some fans refused to travel to Leipzig for the game, which was nevertheless sold out. Leipzig sporting director Ralf Rangnick said the club could have sold twice as many tickets.

Mario Goetze looked lively in his second debut for Dortmund after returning from Bayern Munich, but Leipzig mostly frustrated Dortmund’s speedy forwards and threatened before the break through Marcel Sabitzer and captain Dominik Kaiser, who first played for the side in the fourth tier.

Leipzig’s Andre Schuerrle struck the crossbar, and Keita ultimately claimed the winner on his Bundesliga debut.

“We know where we come from. We’ve a lot to learn but we’re on the right path,” Leipzig coach Ralph Hasenhuettl said.

BAYER LEVERKUSEN 3 HAMBURGER SV 1

Bobby Wood scored again in Hamburger SV’s 1,800th Bundesliga game but Joel Pohjanpalo proved the hero with a late hat trick in Bayer Leverkusen’s win.

Wood, who scored against Ingolstadt on the opening weekend, struck on a counterattack in the 58th minute, only for Pohjanpalo to equalize with just over 10 minutes remaining and complete his hat trick in injury time.

Leverkusen’s hopes of bouncing back from an opening-weekend defeat improved with the return of striker Javier “Chicharito” Hernandez, who broke his right hand in a fall.

Neither side created much going forward, however, until Wood snatched the opening goal after being played through by Michael Gregoritsch. Leverkusen goalkeeper Bernd Leno, who’d just extended his contract to 2020, rushed out of goal and Wood stayed cool to round him and score for the second consecutive game.

But Hamburg, again, let a lead slip.

Julian Brandt was at the heart of the home side’s dangerous play and the Germany midfielder set up Pohjanpalo to head in the equalizer in the 79th. The Finn struck Leverkusen ahead in the first minute of injury time, and there was still time for Chicharito to set him up to complete the scoring in the fourth.

WOLFSBURG 0 COLOGNE 0

Germany forward Mario Gomez endured a frustrating debut for Wolfsburg. Much was expected of Gomez on his return to the Bundesliga. However, Cologne allowed few chances, and no Wolfsburg player touched the ball less than Gomez.

Elsewhere, little-known striker Maximilian Philipp struck twice as promoted Freiburg upset Borussia Moenchengladbach 3-1 at home, Hertha Berlin midfielder Genki Haraguchi set up both goals to beat Ingolstadt 2-0, and Sandro Sirigu’s last-minute goal gave Darmstadt a dramatic 1-0 win over Eintracht Frankfurt in the Hessen derby.