The Old Lady came out on top in a tightly contested affair in a cold and wet Renzo Barbera thanks to the Swiss' second-half strike.
Stephan Lichtsteiner was the hero for the Old Lady, with his solitary goal being enough to separate the two sides on an ice cold afternoon in the Sicilian capital.
Juventus coach Antonio Conte returned to the bench following his four-month ban for his part in a betting scandal and he made a couple of changes to the side that overcome Shakhtar Donetsk midweek with Alessandro Matri coming in for the suspended Sebastian Giovinco while Claudio Marchisio was restored to the side in place of Paul Pogba.
After a scrappy first 10 minutes, the game’s first attempt on goal finally arrived when Palermo’s Jasmin Kurtic sent in a pile driver from distance but Gianluigi Buffon was well placed to fist the ball to safety.
On a rainy and cold night afternoon in Palermo, the Sicilians continued to have the better of the chances and were inches from going ahead after a delightful lobbed pass from Edgar Barreto found Fabrizio Miccoli, who did superbly to direct the ball into the net, but unfortunately for the Rosanero captain he was in an offside position.
The toils of Juventus’ midweek adventure to Ukraine were clearly showing as the league leaders struggled to create chances at the other end while their hosts dominated possession in the middle of the park.
Indeed, it took until the 30-minute mark for the Old Lady to fashion their first attempt on goal, and it came through midfielder Marchisio, who fired over after the ball fell to him from a corner.
Five minutes later the best chance of the game arrived. A deep cross from Arturo Vidal was chested down by Matri into the path of Marchisio, and Samir Ujkani could only parry his shot into the path of Mirko Vucinic, whose outstretched leg diverted a soft attempt rebound off the post.
As the half-time break drew closer, it was Juve who were asserting their authority on proceedings while Palermo resorted to playing on the counter attack. Still, the visitors continued to find it difficult to carve out clear-cut chances.
However, Juve did eventually get a shot in on target. Vidal expertly won the ball back in an advanced position and the Chilean laid off a beautiful ball to Matri, who had his shot blocked by Ukjani.
The weather conditions did not improve as the players headed out for the second period, but that did not stop Juve from continuing as they left off in the first half. Vucinic broke forward and came agonisingly close to opening the scoring only to see his effort roll by the post.
But the game’s first goal did come moments later. Vucinic’s classy back-heeled pass found a charging Lichtsteiner and the Swiss made no mistake from 12 yards out.
The game took on a familiar pattern following Juve’s opener, with Palermo playing on the counter attack while Juve searched and probed for a second goal.
Paulo Dybala came on for the hosts and almost had an immediate impact when he sent in a whistling shot from just outside the area. Moments later it was Nicklas Bendtner who came to close to scoring Juve’s second with his first touch, but the Dane’s effort went wide of the post.
With a quarter of an hour remaining, the Sicilians' chances of getting something out of the game were made that much harder when Michel Morganella was shown his second yellow of the afternoon, leaving Gian Piero Gasperini’s side with just 10 men.
To Palermo’s credit, they did not give up despite going a man down, but despite their impressive record at home they eventually succumbed to their eighth loss of the season. As for Juventus, they continued their march towards a second successive Scudetto with their third win on the trot in all competitions.