Liverpool win 2-1 on aggregate
Liverpool sealed an all-Premiership Champions League semi-final with Chelsea after a superb display.
Rafael Benitez's injury-ravaged side delivered a performance of discipline and resilience to protect their 2-1 lead from the first leg at Anfield.
Juventus created few opportunities apart from an early close-range effort from striker Zlatan Ibrahimovic.
Fabio Cannavaro struck the post late on, while Milan Baros was off target with Liverpool's best chance.
It was a performance that guaranteed that there will be a Premiership team in the Champions League final in Istanbul in May.
The game was played to a backdrop of trouble as Juventus fans clashed with police, attacked Liverpool fans and threw missiles throughout the tie.
Liverpool, as expected, restored Jerzy Dudek in goal ahead of youngster Scott Carson, with Xabi Alonso back in midfield for the first time since January in place of injured captain Steven Gerrard.
And Liverpool's depleted side more than held their own in a first 45 minutes played in low-key fashion, with Juventus showing little urgency as they went in search of the goal that would take them through.
Liverpool's only worrying moment came after 10 minutes when Zambrotta's cross found Ibrahimovic unmarked only eight yards out, but he could not keep his effort down and Dudek was grateful to see it fly over the top.
Benitez's side showed great organisation, catching Juventus offside on numerous occasions, but the forward pairing of Baros and Luis Garcia got little joy from the Juventus rearguard.
Garcia escaped once, but Gianluigi Buffon was quickly out of his goal to beat the Spaniard in a race for the ball.
Juventus needed to put more pressure on Liverpool, and they made a change at half-time, replacing Ruben Olivera with Marcello Zalayeta.
Liverpool's first clear chance came after 49 minutes, when a brilliant ball from Alonso released Baros, but the Czech striker was wasteful when clean through and failed to even hit the target.
Benitez brought on Vladimir Smicer after 57 minutes to replace the ineffective Antonio Nunez.
Dudek had been superbly protected, and it was 63 minutes before he made his first save, a fine diving stop from Emerson's header after Mauro Camoranesi's free-kick.
Baros had been disappointing, and he was replaced with 15 minutes left by Djibril Cisse, who completed a remarkable recovery from the broken leg he sustained at Blackburn in October.
Juventus came close to breaking the deadlock when Cannavaro's header struck the post and rebounded to safety.
Juventus: Buffon, Thuram, Montero (Pessotto 83), Cannavaro, Camoranesi (Appiah 84), Emerson, Olivera (Zalayeta 46), Zambrotta, Nedved, Ibrahimovic, Del Piero.
Subs Not Used: Chimenti, Birindelli, Blasi, Masiello.
Booked: Montero, Ibrahimovic, Zambrotta, Emerson.
Liverpool: Dudek, Finnan, Hyypia, Carragher, Traore, Nunez (Smicer 58), Biscan, Alonso, Riise, Luis Garcia (Le Tallec 85), Baros (Cisse 75).
Subs Not Used: Carson, Warnock, Welsh, Potter.
Booked: Alonso, Finnan.
Ref: Valentin Ivanov (Russia).