Ferran Torres opened the scoring for the league leaders within the first 15 minutes after carrying the ball across the edge of the box before striking into the bottom-left corner.
However, the visitors found themselves level moments later following a mix-up at the back between Wojciech Szczesny and Inigo Martinez, who failed to deal with a cross and allowed Borja Iglesias to tap home.
Barca suffered yet another setback when Iglesias gave his side a 2-1 lead early in the half after Frenkie de Jong's poor reading of a bouncing ball gave the striker the chance to run through at goal.
Iglesias would go on to complete his hat-trick just after an hour of play, but Dani Olmo and Raphinha quickly levelled the score.
It looked certain that Barca would only take a point, but Raphinha's 98th-minute penalty gave the hosts the victory, helping increase the league leaders' points tally to 73.
SPORTS MOLE'S VERDICT
With just six games remaining in the 2024-25 La Liga season, any advantage at this stage of the campaign could prove pivotal, but seven points is a sizeable gap to second-placed Real Madrid.
However, Hansi Flick's side will have to find a way of balancing their domestic goals with their ambitions in the Champions League given they face a difficult two-legged semi-final tie against Inter Milan.
As for Celta, they end the afternoon in seventh place with 43 points and occupy the second of two Europa League spots, but they are level on points with seventh-placed Mallorca having played an additional game.
BARCELONA VS. CELTA VIGO HIGHLIGHTS
12th min: Barcelona 1-0 Celta Vigo (Ferran Torres)
Ferran Torres picks up the ball on the left side of Celta Vigo's half and carries the ball across to the right side of the box before unleashing a powerful strike into the bottom-left corner.
An amazing effort!
15th min: Barcelona 1-1 Celta Vigo (Borja Iglesias)
Wojciech Szczesny attempts to cut out a low cross into the penalty area from the right but he parries the ball off of defender Inigo Martinez and into the path of Borja Iglesias, who taps home into an empty net.
An immediate response!
52nd min: Barcelona 1-2 Celta Vigo (Borja Iglesias)
Frenkie de Jong mis-reads a bouncing ball near the halfway line and gives Iglesias the opportunity to run in behind, and the striker buries his effort into the bottom-left corner from the right side of the box.
A horrible error at the back!
62nd min: Barcelona 1-3 Celta Vigo (Borja Iglesias)
Celta play a simple pass beyond Barca's high line deep from within their own half to Iglesias, and the forward runs through unopposed at goal before poking home from a central area inside the box.
A hat-trick for Iglesias!
64th min: Barcelona 2-3 Celta Vigo (Dani Olmo)
Raphinha nudges a pass from just in front of Celta's penalty area through to Dani Olmo, who sweeps an effort with his left foot into the right side of goal.
Game on!
68th min: Barcelona 3-3 Celta Vigo (Raphinha)
Lamine Yamal floats a cross from the right corner of the box into the danger area near the far post where Raphinha rises highest to nod in his side's equaliser.
Barca are back!
90+8th min: Barcelona 4-3 Celta Vigo (Raphinha)
Dani Olmo is clipped in the box and a penalty is awarded deep into stoppage time, and Raphinha steps up to take the spot kick before
Barca are back!
MAN OF THE MATCH - BORJA IGLESIAS
Borja Iglesias had scored five league goals prior to his side's match against Barcelona on Saturday afternoon, and he is unfortunate to have not ended up on the winning side.
The striker routinely exploited Barca's high line and punished several mistakes at the back, and he may have given other teams a blueprint as to how to get the better of the Catalonians.
BARCELONA VS. CELTA VIGO MATCH STATS
Possession: Barcelona 72%-28% Celta Vigo
Shots: Barcelona 18-11 Celta Vigo
Shots on target: Barcelona 6-8 Celta Vigo
Corners: Barcelona 4-1 Celta Vigo
Fouls: Barcelona 10-13 Celta Vigo
BEST STATS
WHAT NEXT?
Barcelona will play against Mallorca in La Liga on Tuesday before taking on fierce rivals Real Madrid in the final of the Copa del Rey on April 26.
Meanwhile, Celta Vigo are set to face Villarreal at home on Wednesday in La Liga, and their following match comes against Real Madrid on May 4.
Written by
Lewis Nolan