Franco Brienza's goal sent Juve crashing to their second consecutive defeat and now Fabio Capello's lead could be cut to just two points. It's the first time the Sicilians have won this tie in Serie A since 1948-49.
The Bianconeri needed to recover from Wednesday's 1-0 home loss to Sampdoria, but they faced a perilous trip to Palermo - a team that had already held them in Turin earlier this season.
Alessandro Del Piero returned to the bench for the third time in four games, while Ruben Olivera and Jonathan Zebina were back from suspension. Mauro German Camoranesi was sidelined by a ban so Gianluca Zambrotta moved up into midfield and Palermo were missing the injured Davide Possanzini.
David Trezeguet tried to scissor-kick a Zlatan Ibrahimovic cross after four minutes, but he just missed the ball from a promising position.
Moments later, Palermo had a classy counter-attack halted by a controversial offside decision. The Rosanero were putting on the pressure all over the park and it paid off after 13 minutes.
Gianluigi Buffon only punched an Eugenio Corini free kick out to the edge of the box, where Franco Brienza was quick to curl a left-foot effort into the net past his outstretched hand.
They nearly doubled their lead moments later, as Luca Toni was left unmarked to run on to a long pass and he couldn't quite get his shot on target.
Juve fought back and Andrea Barzagli flung himself at Alessio Tacchinardi's volley to charge down the danger, but Palermo were having by far the better of the game and Buffon flew to palm a Fabio Grosso cutback out of Toni's path.
Massimo Mutarelli brought down Zambrotta on the very edge of the penalty area, but Olivera blazed the free kick well over from an excellent position.
Juve were not defending well from set-pieces and Barzagli's glancing header turned another Corini free kick wide of the near post.
Brienza skipped past Lilian Thuram and his pass in to Toni was cleared with some difficulty by Fabio Cannavaro as Palermo kept running at the League leaders.
Ibrahimovic was becoming frustrated and was fortunate to avoid a booking when he kicked out at Lamberto Zauli after the whistle had been blown for a push.
Zambrottaas Juve's most dangerous player and his strong run was closed down by Biava and Conteh together, then Olivera pounced on a poor clearance and slammed it over from 30 metres and a mis-hit Birindelli cross-shot nearly took Matteo Guardalben by surprise.
Many expected Alessandro Del Piero to be introduced for the second half, but instead Marcelo Zalayeta replaced defender Birindelli, while Stefano Morrone took over from Massimo Mutarelli. The Uruguayan took the left side of midfield and Zambrotta returned to his old fullback position.
Zebina found space down the right with five teammates in the centre, but the fullback opted to shoot instead of crossing and the chance went begging.
Buffon got down well to block a Grosso angled drive from a corner kick, but Juve went closer than they had all evening when a corner was not cleared effectively and Ibrahimovic saw his close-range effort charged down.
Buffon punched the ball off Toni's head as he lined up his finish, then the goalkeeper was crucial by rushing off his line to parry Brienza's brilliant solo effort with his stomach. The goalscorer had dribbled round two defenders and seen his shot smothered at the near post, while Simone Barone also fired the follow-up wide.
Zambrotta drilled just past the woodwork from a poorly cleared corner kick, but Juve's best chance was almost accidental. Zalayeta sprinted down the left flank and put in a low cross that Corini turned towards his own net, but Guardalben flew to palm out the surprise deflection.
Moments later at the other end Toni's header was deflected over by the back of Cannavaro's skull.
There was blind panic in the Juve area on 79 minutes, as Morrone's through ball found Santana totally unmarked and he chipped it over Buffon as he rushed off his line, but the Argentine somehow managed to curl it wide of an open goal.
Santana was fortunate to escape without serious injury after Ibrahimovic stamped on his shin, while Cannavaro performed a decisive tackle as Gonzalez prepared to run towards Buffon.
------------------------------------------------------------------------------------------
Channel4.com