James Shields threw one of his best games since joining the White Sox -- and his teammates backed him with six homers.