Seydou Keita, who had earlier seen an effort controversially ruled out for offside, scored the only goal of the game when he slid home Lionel Messi's low cross just before the break.
But Barca, despite their superior possession, quality and number of chances, were unable to make the game safe and will have been happy to hear the final whistle in the end.
Barca coach Pep Guardiola took his place on the bench despite having been released for hospital only hours before the game.
Guardiola, who was admitted with a lower back problem on Thursday, was visibly struggling as he took his seat and was a less animated figure than usual.
The Barca coach had probably hoped for an easy ride against relegation-threatened Zaragoza, but his side struggled early on.
Guardiola was still missing captain Carles Puyol, but welcomed back goalkeeper Victor Valdes from injury, while Javier Mascherano began in midfield ahead of Sergio Busquets, who was rested along with David Villa and Andres Iniesta.
That meant rare starts for Bojan Krkic, Gabi Milito and Keita.
And it was the Mali midfielder who got the vital breakthrough two minutes before the interval.
Keita, who had earlier seen a header controversially disallowed for offside, slid home from eight yards after Messi had got to the by-line and pulled the ball back for his unmarked team-mate.
Barca had been knocking on the door before that and Keita had been unlucky to see his header ruled out after 29 minutes, when he rose to meet Dani Alves' cross, directing the ball into the ground and over a despairing Toni Doblas.
The decision was marginal and Barca felt hard done by.
The Catalans had previously gone close through Xavi, Pedro and Mascherano, but Doblas saved each time to frustrate the locals.
Zaragoza, playing on the break, had also looked dangerous at times, but the visitors were restricted almost entirely to defending in the opening 45 minutes.
However, Nicolas Bertolo almost equalised five minutes after the break, when he went past Gerard Pique and fired a shot across goal, just wide of Valdes' far post.
Xavi then hit a free-kick into the wall at the other end and Alves saw a long-range effort deflected wide moments later.
Doblas also parried a goalbound header from Pique as Barca remained in control.
But the Catalans still had just a one-goal lead and they had Valdes to thank for a vital save on the hour, when the keeper came quickly off his line to save with his feet from Florent Sinama-Pongolle, who had run on to a long pass and left Pique in his wake.
Substitute Villa twice came close to adding to the locals' lead, but the striker was denied against his former club on both occasions by the excellent Doblas.
Villa also blasted over the bar after Maxwell had seen his long-range shot parried by the Zaragoza keeper and Messi was just inches away from a set piece with the last kick of the game.
Barca deserved their win in the end and the Catalans once again move provisionally clear of fierce rivals Real Madrid, who travel to Racing Santander on Sunday, by 10 points.
Zaragoza, meanwhile, remain two points above the drop zone with 11 games remaining, but that could change following Sunday's matches.