Lionel Messi came to the rescue with a late double to earn Barcelona a 3-2 victory over Group G opponents Spartak Moscow on Wednesday as the Catalans stuttered in the opening match of their Champions League campaign.
Barca are aiming for their third Champions League trophy in five years but could have had their first home defeat in the competition in nearly three years when Romulo gave the visitors the lead on the hour mark.
The hosts have made a blistering start in La Liga with four straight wins and went ahead early on through Cristian Tello, but an own-goal from Dani Alves after 29 minutes brought Spartak back into the contest.
Barca were enjoying the vast majority of the play but Romulo's second-half goal left them staring at potentially their first loss at the Camp Nou since another Russian club, Rubin Kazan, won here in 2009.
Messi, though, put their European ambitions back on track with two poacher's goals inside the last 20 minutes.
Spartak's Spanish coach Unai Emery had never beaten Barcelona during his time in charge of Almeria or Valencia and it was always likely to be a severe test as his new charges arrived in the Catalan capital.
However, if they were looking for any weaknesses then the Barca backline has not looked particularly comfortable of late and they were missing two integral parts in Carles Puyol and Jordi Alba.
Spartak's game plan, to defend deeply, was clear from the start, but inviting Barca to attack can be a dangerous tactic at the Camp Nou as they invariably find a way through.
Barcelona's forward Lionel Messi (R) scores during their UEFA Champions League football match against FC Spartak Moscou at the Camp Nou stadium in Barcelona. Barcelona won 3-2.
Tello should have given the home side the lead after 10 minutes but he scooped his shot round the post following a delightful through ball from Messi.
While Barca were dominating, their situation deteriorated at the back as Gerard Pique had to go off a couple of minutes later having injured his leg while shooting and Alex Song was forced to step into the defence.
A physical Spartak side had a distinct height advantage but it mattered little while they ball was at the other end, and Tello made up for his earlier miss with a fine shot from the edge of the area to give Barca the lead.
The youngster stepped inside Kirill Kombarov before slotting past 'keeper Andriy Dykan and into the far corner.
Tito Vilanova's men looked comfortable at that point, but Spartak drew level from a rare breakaway, Emmanuel Emenike making a marauding run down the right before seeing his harmless pass steered into his own goal by Dani Alves on the back foot.
Barca once again went on the offensive and Spartak were left hanging on against waves of attacks, with Sergio Busquets coming within a whisker of scoring with a header which he glanced wide from a corner.
After the restart the intensity dropped out of Barca's play and the game began to open up.
Messi forced a good save out of Dykan at one end and then Spartak stole into the lead as Aidan McGeady supplied the Brazilian Romulo, who finished clinically into the corner.
Vilanova took off Alves and switched to a three-man defence as they looked to get back in the game and Messi once again proved to be the difference.
He first knocked in a Tello pass from close range on 71 minutes and then headed home an Alexis Sanchez cross with ten minutes to go.