Philadelphia showed some spark at the plate and on the mound after getting outscored a combined 18-1 over the previous two games against St. Louis and Chicago. The Phillies came away with the win after dropping five of seven and salvaged a two-game split in their first trip to Chicago's South Side since 2004.
Eickhoff (9-12) did his part, allowing two runs and four hits over six innings.
The White Sox announced hours before the game that their ballpark is getting a new name. U.S. Cellular Field will be called Guaranteed Rate Field starting in November under a 13-year deal with the mortgage company.
But while a major change is coming, things basically remained the same for a team with a losing record this year and one playoff appearance since winning the 2005 World Series.
Shields set a career high with his 16th loss.
The veteran right-hander gave up four runs and seven hits in six innings. The home runs by Joseph and Hernandez brought his total to 31 this season and 22 since the White Sox acquired him from San Diego on June 4.
Shields is 0-4 with a 13.95 ERA in five starts this month after posting a 1.78 ERA over five outings in July.
Navarro hit a two-run homer in the sixth. But that was all the scoring against Eickhoff, who improved to 3-0 in his past five starts.
Phillies: INF Andres Blanco (broken finger) is eyeing a Sept. 1 return.
White Sox: 2B Brett Lawrie had an MRI on his left knee and hip, though manager Robin Ventura did not have the results. Lawrie initially was placed on the DL because of a hamstring issue but returned from his rehab assignment because of a setback.