- Gabri Veiga (42', 65')
- Ansu Fati (79')
Six anxious teams went into the final weekend hoping to avoid the drop, with five breathing sighs of relief when Ronaldo-owned Valladolid's 0-0 draw at home to Getafe ensured they finished 18th, ending their season-long LaLiga stay.
"There is not a lot to explain, we tried but couldn't score the goal that we needed," Valladolid goalkeeper Jordi Masip said. "It's a disappointment for the club, the fans and the entire city."
At the Balaidos in Vigo, hosts Celta, who were battling the drop, took the lead in the 42nd minute when Gabri Veiga squeezed past defenders Marcos Alonso and Andreas Christensen with a burst of pace and slotted the ball into the bottom corner.
Spurred on by a desire to rubber-stamp their safety, Celta took control of the game, launching wave after wave of attacks on Barca's backline before Veiga scored again with a cross that sailed fortuitously into the net in the 65th minute.
Barca made a raft of substitutions in the second half, with one of those changes, Ansu Fati, scoring in the 79th minute, but Celta held on for the win and ended in 13th spot.
"I think we have had a great season, but we are aware that we need to strengthen because that is the demand at Barcelona, above all in Europe," Barca coach Xavi Hernandez said after the match. "We have to be competitive. We need two players per position.
"We have got the most out of the squad this season. But we need to take steps forward this summer and reinforce well to be able to compete for every trophy. We have to improve to more to be able to win the Champions League."
Valencia and Cadiz survived after 1-1 draws, while Almeria twice went behind to already-relegated Espanyol before an 87th-minute penalty from Adri Embarba earned a 3-3 draw to move them up to 41 points -- one ahead of Valladolid.
Valencia, who were under threat of going down for the first time since they were promoted to the Spanish top-flight in 1987, survived after a 1-1 draw with Real Betis.
"We have achieved it with a lot of hard work, but I am not entirely happy, because this season, since the World Cup break, has been disastrous, lamentable," Valencia captain Jose Gaya told Movistar.
"I feel very bad for the people ... because they don't deserve everything we have suffered. And we have also suffered and thanks to their drive we have achieved it. Hopefully this will be useful for the following years, because we have played with fire."
Cadiz also drew 1-1 at bottom club Elche.
- Juan Luis Pulido Santana