Real were pushing hard for the victory they needed to move back on top of the Primera Liga standings when centre-back Francisco Pavon was sent off for a second booking on 72 minutes.
Carlos Queiroz's side continued to press but the Zaragoza defence held out, with Argentine centre-back Gabriel Milito in outstanding form against the club that rejected him over the close season.
The result left Real in second place in the table with 20 points from nine games, a point behind leaders Deportivo Coruna and one ahead of third-placed Valencia.
Depor can stretch their advantage over Real to four points if they win at home to Real Mallorca on Wednesday, while Valencia have a chance to move into second place in their home game against Celta Vigo.
Zaragoza's best chance came as Luciano Galletti was put through on goal 10 metres out on the right side of the area only to hit the far post with his shot.
Real, once again missing injured England midfielder David Beckham, looked disjointed early on but they gradually started to dominate from the mid-point of the first half.
Ronaldo had a decent shout for a penalty when he was tugged in the area by Alvaro before Raul blasted over when well placed.
Real came close to scoring three in the space of five minutes in the second half.
With 63 minutes gone, Roberto Carlos hit the post with a low shot and two minutes later Raul could only shoot straight at keeper Cesar Lainez after being put clean through.
Zinedine Zidane then beat three defenders on a snaking run into the area but Lainez made another good save from the Frenchman's low shot.