The White Sox have acquired James Shields from the Padres, relocating the starting pitcher who never found his groove after signing the biggest free-agent deal in franchise history last year.