The Catalans ended their losing streak against Bayern by outplaying the six-time winners at the Olympic stadium. Robert Lewandowski found the back of the net for Bayern, while England star Harry Kane scored for the visitors.
Hansi Flick, who was in charge of the Bundesliga side in a humiliating 8-2 romp over Barca in 2020, led the Catalans to an emphatic triumph which indicated they may be capable of winning the trophy for the first time since 2015 after a decade of disappointment.
Defeat leaves Bayern with only one victory from their opening three group games and in the bottom half of the table, while Barcelona have two wins and are in the top third.
“In my opinion, this game could have been a (Champions League) final, to be able to win it in this way, so well, in front of our fans, is quite special and I leave here happy,” Raphinha told Movistar.
“Getting the second victory in the Champions League was important and now we have to think about the game on Saturday.”
Barcelona visit European and Spanish champions Real Madrid in a La Liga Clasico this weekend and warmed up for it in spectacular style.
Flick brought midfielder Fermin Lopez in for his first start of the season after injury, while his Bayern counterpart Vincent Kompany opted for Serge Gnabry in place of Jamal Musiala, who was only fit enough for the bench.
Barcelona had not scored in their last four matches against Bayern but were ahead inside one minute, with Lopez playing Raphinha in behind the visitors’ high line.
The Brazilian winger, on his 100th appearance for the club since joining from Leeds, and proudly sporting the captain’s armband, stayed cool to dribble around Manuel Neuer and roll home.
Former Tottenham striker Kane had a similar chance to equalise at the other end but took a heavy touch and Inaki Pena raced out of his goal to deny him, before the Englishman had a goal ruled out for a marginal offside.
Bayern kept pouring forward and Kane found the net once more after 18 minutes, and this time it counted.