Simone Pepe headed Juve in front in the first half before Alessandro Matri and Claudio Marchisio each scored their fifth goal of the season to keep Juventus unbeaten after their first 10 games of the season.
Sixth-placed Palermo have a 100 percent home record but have taken only one point in six away games and have yet to score on the road.
Antonio Conte's team went level on 22 points with Lazio, who have played a game more and drew 0-0 at Napoli on Saturday.
Juventus visit Lazio next Sunday.
"It was a treacherous game on paper and that's how it turned out on the field. If we hadn't been on our toes, we could have been surprised," said Conte.
His opposite number Devis Mangia was baffled by his team's poor away form.
"Perhaps we need to go for a psychoanalysis to cure these problems we are suffering when we travel," he told reporters.
Udinese missed a chance to go top when they lost 2-0 at Parma, a result which kept them level on 21 points with defending champions AC Milan who drew 0-0 at Fiorentina on Saturday.
Udinese coach Francesco Guidolin spent two seasons at Parma but got no favours from his former club as Jonathan Biabany headed the hosts ahead before the hour and Sebastian Giovinco converted a penalty.
It was Giovinco's seventh goal of the season.
AS Roma went into fifth place with 17 points after a 2-1 win over Lecce in the late game, Miralem Pjanic and Fernando Gago scored before Andrea Bertolacci pulled one back for the visitors.
Argentine forward German Denis scored twice for Atalanta, the first a penalty, in a 2-2 draw at Siena, leaving him as league top scorer with nine goals.
Gaetano D'Agostino and Alessandro Gazzi replied for Atalanta who twice came from behind in a battle of two promoted teams.
Bottom club Cesena won 1-0 at Bologna, their first win of the season, thanks to a goal from Marco Parolo.
Chievo Verona won 2-1 at Catania and Miguel Veloso's 86th minute gave Genoa a 1-0 win over Novara, even though the hosts played the second half with 10 men after Luca Antonelli was sent off for a professional foul.
Novara had Riccardo Meggiorini dismissed in the 81st minute after he was booked and then insulted the referee over the original decision.
Juventus, playing their first game for three weeks, went ahead in the 20th minute when Pepe was left unchallenged to head in from Giorgio Chiellini's cross.
Andrea Pirlo curled a 20-metre effort against the post shortly afterwards for Juve although the visitors also looked dangerous on the break.
Three minutes after half-time, Stephan Lichtensteiner sent Matri clear down
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.