Antoine Sibierski and Steven Taylor sparked a Newcastle fightback to reach the knockout stages of the Uefa Cup.
Local hero Taylor sealed a vital win for Newcastle
Fabian Canobbio had put their Spanish opponents ahead in the ninth minute when he pounced on Taylor's headed clearance and curled home the opener.
But Sibierski restored faith at St James' Park, heading in James Milner's superb cross 28 minutes later.
Taylor then nodded in the winner four minutes from time to seal qualification with one group game remaining.
With Palermo's 3-0 defeat to Fenerbahce earlier in the evening, Newcastle were assured of remaining at the top of Group H even before the game got under way.
But Celta Vigo's intimidating away form was always going to present a headache for Glenn Roeder's injury-depleted side which featured a rare starting appearance for Albert Luque.
Spaniard Luque scored Newcastle's 100th goal in European competition in the win against Palermo three weeks ago, but it was their opponents who reached the century mark on a freezing Thursday night at St James' Park.
Newcastle's nervous start was punished just nine minutes in when Canobbio capitalised on a mix-up between goalkeeper Shay Given and Taylor, who headed straight to the Uruguayan's feet at the far right post.
Canobbio made no mistake, curling the ball round Given and into the top left-hand corner.
It marked almost half an hour of confident possession by Celta Vigo, who looked rarely troubled by the Newcastle attack.
But, with half-time looming, Sibierski breathed life back into the home side after great persistence from Milner down the right.
Milner snatched back possession from defender Diego Placente and sent in a cross to straight to the head of Sibierski at the far post and the Frenchman firmly nodded home.
Sibierski could have doubled his tally five minutes later, but Yao Yago got in an important challenge as the pair homed in on Luque's cross, while Titus Bramble headed over the bar on the stroke of half-time.
Belozoglu Emre had an optimistic effort from distance shortly after the break, while Baiano continued to look the biggest threat to Newcastle's hopes to keeping out Celta Vigo.
As the game edged past the 80-minute mark, it looked as though Newcastle would be happy to settle for a draw.
But Taylor had different ideas, when minutes later the defender made up for his earlier mistake by heading Luque's corner past a stranded Celestes keeper.
It was his first goal for the Magpies and a vital one for the the club, who made it three wins out of three in Group H.
Newcastle manager Glenn Roeder:
"At times it wasn't pretty - I didn't think it would be - but that mustn't detract from the fact it was nothing short of a fantastic victory.
"Considering we were a goal behind to a team that's just beaten Real Madrid and Deportivo last week, to come back and win the game just shows you the character and skill in the side."
Newcastle: Given, Solano, Bramble, Taylor, Ramage, Milner, Butt (Parker 65), Emre (Martins 70), N'Zogbia, Luque, Sibierski.
Subs Not Used: Harper, Huntington, Edgar, Carroll, Troisi.
Goals: Sibierski 37, Taylor 86.
Celta Vigo: Esteban, Angel, Yago, Contreras, Placente, Jonathan, Iriney, Borja, Nene (Lopez 74), Baiano (Jesus Perera 61), Canobbio (Jorge 86).
Subs Not Used: Pinto, Jonathan Vila, Juncal, Martino.
Goals: Canobbio 9.
Ref: Dick Van Egmond (Holland).