The draw preserved Barcelona's unbeaten run in this season's competition, which now extends to 15 games, and they will be favourites to go through to a semi-final against Real Madrid or Manchester United after the second leg in a fortnight.
Juventus played by far the better football and took the lead in the 16th minute when defender Paolo Montero drilled in a loose ball from 10 yards.
Pavel Nedved picked up an injury in the Turin derby at the weekend, but Juve coach Marcello Lippi started him in attack alongside striker Alessandro Del Piero and it was the Czech playmaker who created the opening goal.
Nedved sent in a low cross to the far post which, after keeper Roberto Bonano had parried an overhead kick by Del Piero, fell to Montero, who made no mistake.
It was the first goal Barcelona had conceded in the Champions League this year and for the next 10 minutes they were pressed back into their own half as the home side went on the attack.
When Barcelona did break forward in the first half, Juve's central defence pairing of Montero and Ciro Ferrara stifled their attacks, limiting them to two long-range efforts that goalkeeper Gianluigi Buffon gathered easily.
Barca started with a little more spirit in the second half and in the 53rd minute Saviola forced Buffon to trap the ball on his line after the Argentine had latched onto a Marc Overmars cross.
But Juventus continued to look the more dangerous side and their hardworking midfield created chances for midfielder Edgar Davids and Del Piero.
Closing up the game seemed the last thing on Lippi's mind as he sent on striker Marcelo Zalayeta in place of wing back Gianluca Zambrotta with just over 20 minutes remaining.
Barcelona continued to pump balls uselessly into Juve's area and their chances of scoring a precious away goal appeared to be fading.
But in the 78th minute, a break down the right allowed Dutch striker Patrick Kluivert to cut the ball behind the defence to compatriot Michael Reiziger.
The defender fed a pass into the area for Saviola and a space opened up for the 21-year-old to glide through and slip the ball neatly past Buffon for his seventh goal in this season's competition.
A minute later Kluivert had a shot saved when left one-on-one with Buffon, and Juve substitute Marco Di Vaio knocked the ball wide in a similar situation at the other end deep into injury time.