At Phoenix, Jeff Francis of North Delta, B.C., gave up three hits in eight strong innings and Jeff Baker hit his first homer of the season to help the Rockies beat the error-prone Diamondbacks.
Francis (12-11) struck out five and did not walk a batter as Colorado snapped a three-game losing streak. Brian Fuentes pitched the ninth to complete the three-hitter.
Miguel Batista (10-7) gave up three runs in six innings for the loss.