James Shields worked into the eighth inning to outpitch CC Sabathia, prolong Alex Rodriguez's quest for his 600th homer and help Tampa Bay beat the New York Yankees 3-0 on Sunday.