Grant McCray tripled in a run and scored another in a two-run second inning, Blake Snell combined with three relievers on a shutout and the San Francisco Giants completed a surprising three-game road sweep over the playoff-contending Kansas City Royals with a 2-0 win Sunday afternoon.