Messi, who had earlier twice hit the post, then got on the scoresheet in between goals from Harry Kane and Erik Lamela, before the Argentina superstar grabbed his second late on to seal victory
Lionel Messi struck twice as Barcelona inflicted more Champions League pain on Tottenham with a 4-2 win at Wembley on Wednesday, while Neymar hit a brilliant hat-trick in Paris Saint-Germain's 6-1 rout of Red Star Belgrade.
Philippe Coutinho scored after just two minutes for Barcelona, who arrived in London winless in three La Liga matches, with Ivan Rakitic drilling in a magnificent second.
Messi, who had earlier twice hit the post, then got on the scoresheet in between goals from Harry Kane and Erik Lamela, before the Argentina superstar grabbed his second late on to seal victory.
"After a few bad results it was important to do well today. Our response was very good," said Barca coach Ernesto Valverde.
Barca head Group B on six points alongside Inter Milan, but Mauricio Pochettino's side face a vital double-header against PSV Eindhoven after failing to collect a point from their opening two matches.
The Tottenham boss admitted Spurs had few answers for Messi as his team was left with an uphill struggle to reach the knockout stages.
"He's a fantastic player," said Pochettino. "His average performance is this type of game. He's always above everything."
Inter, the last Italian club to win the Champions League in 2010, again recovered from a goal down to beat PSV 2-1 in the Netherlands.
A cracking Pablo Rosario strike put PSV ahead, but Inter levelled through Radja Nainggolan moments after visiting goalkeeper Samir Handanovic somehow escaped a red card for handling outside his area.
2013-14: 9 goals— bet365 (@bet365) October 3, 2018
2014-15: 27 goals
2015-16: 16 goals
2016-17: 26 goals
2017-18: 29 goals
2018-19: 3 goals
Since joining Inter Milan, Mauro Icardi has 110 goals in 189 games.
He's still just 25. pic.twitter.com/c2xPPRtPCs
Mauro Icardi, whose late goal stunned Spurs a fortnight ago, was the hero again for Luciano Spalletti's men as he pounced on hesitant defending to net the winner on the hour.
PSG rebounded from their 3-2 defeat by Liverpool with an attacking masterclass against 1991 European Cup winners Red Star at the Parc des Princes.
Neymar curled in a sublime free-kick to open the scoring on 20 minutes, quickly doubling his tally before Edinson Cavani, Angel di Maria and Kylian Mbappe also found the target.
Former Germany international Marko Marin popped up with a consolation for Red Star, with Neymar completing his hat-trick from another stunning free-kick.
"I really liked the effort made by the whole team, but Neymar was sensational," said PSG coach Thomas Tuchel.
"He is one of the best players in Europe and that is very, very important for us."
Carlo Ancelotti's Napoli top Group C on four points after Lorenzo Insigne delivered a 90th-minute winner at home to Liverpool, who are level on three alongside PSG.
Dries Mertens hit the bar for Napoli late on, but there was still time for Insigne to nick all three points at the death as he slid to poke in a cross from Jose Callejon.
Heartbreak for Liverpool! 💔— Football on BT Sport (@btsportfootball) October 3, 2018
Lorenzo Insigne snatches victory for Napoli in the 90th minute! 🔵⚪️ pic.twitter.com/cICMZZBoBZ
"Tonight we showed this group won't just be hard for Napoli, but for everyone involved," said Ancelotti. "It means a lot to us to have won against the finalists from last year."
Antoine Griezmann scored two goals to lift Atletico Madrid, last season's Europa League winners, to a 3-1 victory over Club Brugge in Spain.
Arnaut Groeneveld cancelled out Griezmann's opener with a thunderous strike from the left wing, but the France international restored Atletico's lead before Koke made the points safe in stoppage time.
"I said it last season and I'll say it again -- Griezmann is the best player in the world," said Atletico coach Diego Simeone.
Borussia Dortmund lead Atletico at the top of Group A on goal difference following their 3-0 defeat of a struggling Monaco outfit.
Jacob Bruun Larsen broke the deadlock in Germany shortly after his introduction as a half-time substitute, with Paco Alcacer finding the net just minutes after smacking a penalty against the bar.
Marco Reus fired in a third from a Bruun Larsen cross, leaving Dortmund and Atletico on six points apiece ahead of their upcoming home-and-away meetings.
Marco Reus in the current season with Borussia Dortmund:— Borussia Dortmund (@BVBSudtribune) October 3, 2018
✓ 6 goals 🎯.
✓ 4 assist 👟.
✓ 9 matches ⚽️.
✓ Appearances in Bundesliga, DFB Pokal and UEFA Champions League.
The captain returned to his best level and can give more. 👏 pic.twitter.com/QuQ4Rn6iCT
In Group D, American international midfielder Weston McKennie hit an 88th-minute winner as struggling Schalke edged Lokomotiv Moscow 1-0.
Porto are joint-top with Schalke following a 1-0 win over Galatasaray courtesy of Moussa Marega's second-half goal in Portugal.
Borussia Dortmund (GER) 3 (Bruun Larsen 51, Alcacer 72, Reus 90+2) Monaco (FRA) 0
Atletico Madrid (ESP) 3 (Griezmann 28, 67, Koke 90+4) Club Brugge (BEL) 1 (Groeneveld 39)
PSV Eindhoven (NED) 1 (Rosario 27) Inter Milan (ITA) 2 (Nainggolan 44, Icardi 60)
Tottenham Hotspur (ENG) 2 (Kane 52, Lamela 66) Barcelona (ESP) 4 (Coutinho 2, Rakitic 28, Messi 56, 90)
Paris Saint-Germain (FRA) 6 (Neymar 20, 22, 81, Cavani 37, Di Maria 41, Mbappe 70) Red Star Belgrade (SRB) 1 (Marin 74)
Napoli (ITA) 1 (Insigne 90) Liverpool (ENG) 0
Lokomotiv Moscow (RUS) 0 Schalke (GER) 1 (McKennie 88)
FC Porto (POR) 1 (Marega 49) Galatasaray (TUR) 0
AEK Athens (GRE) 2 (Klonaridis 53, 63) Benfica (POR) 3 (Seferovic 6, Grimaldo 15, Alfa Semedo 74)
Bayern Munich (GER) 1 (Hummels 4) Ajax (NED) 1 (Mazraoui 22)
Hoffenheim (GER) 1 (Belfodil 1) Manchester City (ENG) 2 (Aguero 8, David Silva 87)
Lyon (FRA) 2 (Dembele 70, Dubois 72) Shakhtar Donetsk (UKR) 2 (Junior Moraes 44, 55)
Roma (ITA) 5 (Dzeko 3, 40, 90+2, Cengiz Under 64, Kluivert 73) Viktoria Plzen (CZE) 0
CSKA Moscow (RUS) 1 (Vlasic 2) Real Madrid (ESP) 0
Juventus (ITA) 3 (Dybala 5, 33, 69) Young Boys (SUI) 0
Manchester United (ENG) 0 Valencia (ESP) 0
⏰ RESULTS ⏰— UEFA Champions League (@ChampionsLeague) October 3, 2018
⭐️ Neymar, Reus, Icardi, Griezmann & Messi shine!
🤔 Most entertaining game? pic.twitter.com/qnnVNpu8V5