Nel 2004 il lo acquista per 2,5 milioni di euro. Il difensore diventa subito titolare e perno della squadra rosanero, che a fine stagione conquista la prima qualificazione in Coppa UEFA della sua storia grazie al sesto posto in campionato. Nei successivi quattro anni tra i siciliani, Barzagli colleziona 142 presenze e 3 reti in Serie A, mentre in Europa totalizza 15 presenze e 1 gol: alla chiusura della stagione 2006-07, risulta insieme a Franco Brienza il calciatore rosanero più presente nelle competizioni internazionali per club, con 15 apparizioni (i due saranno poi raggiunti da Mattia Cassani nell'annata 2010-11). Nella stagione 2007-08 diventa inoltre il capitano della squadra palermitana.