Gareth Bale was one of a handful of Real first-team regulars on display at the Estadio Los Pajaritos, and was on hand to slot home the first from the penalty spot ten minutes before the break after Lucas Vazques was clumsily brought down in the box by Carlos Gutierrez.
They survived a serious scare in the 76th minute when Inigo Perez snatched the ball from Marcos Llorente and launched a 40-yard shot over the head of keeper Kiko Cassila that thumped the crossbar and came agonisingly close to crossing the line.
Real sealed the win with another spot kick a minute from the end, again won by Vasquez but this time slammed home by substitute Isco, and Baroja Mayoral completed the rout a minute later with a close range header.
Shorn of attacking stars Lionel Messi and Luis Suarez, Barca coach Ernesto Valverde also left out captain Andres Iniesta and others including goalkeeper Ter Stegen, centre-back Samuel Umtiti and midfielder Ivan Rakitic from the starting line-up for their match at Celta.
However striker Ousmane Dembele made his first appearance, as a 71st-minute substitute, since tearing his hamstring at Getafe on September 16, just three games into his Barca career following a 105-million-euro ($124 million) move from Borussia Dortmund.
Despite the raft of absences Barca took the lead after 15 minutes through a neat Jose Arnaiz finish, but after a bright start they ceded control to the hosts.
Celta hit back 16 minutes later through Pione Sisto, who reacted quickest after Iago Aspas hit the bar from close range and rifled a shot past Barca keeper Jasper Cillessen from a tight angle to give his side a chance in the return leg at the Camp Nou next Thursday.
In Thursday's other matches, Leganes beat Villareal 1-0 thanks to an Nordin Amrabat goal while strikes from José Luis Morales and Ivan Lopez Álvarez saw Levante come back from a goal down to win 2-1 at Espanyol.