Andrew Cashner carried a perfect game into the seventh inning and faced the minimum 27 batters in a one-hitter that sent the San Diego Padres past the Pirates, 2-0, on Monday night in Pittsburgh.
Cashner (10-8) retired his first 18 batters before Jose Tabata grounded a clean single into right field leading off the seventh. Tabata was erased when Andrew McCutchen grounded into an inning-ending double play, and the righthander cruised to his first complete game in 31 career starts.
The Pirates lost for the second time in eight games but remained tied for the NL Central lead with the Cardinals.
Kyle Blanks, Ronny Cedeno, and Rene Rivera each had two hits as the Padres won for the ninth time in 13 games.
A.J. Burnett (8-11) took a shutout into the seventh but wound up with the loss.
Rockies 6, Cardinals 2 — Todd Helton started his final homestand with a key single in the eighth inning that helped Colorado beat St. Louis.
In the eighth, Troy Tulowitzki led off with a walk against Trevor Rosenthal (2-4). One out later, Helton, who is retiring at the end of the season, singled to center to put runners at the corners. Wilin Rosario singled to give Colorado a 3-2 lead.
Royals 7, Indians 1 — James Shields struck out a season-high 10 in six innings, Salvador Perez led a scrappy offense, and host Kansas City pounded Cleveland to tighten the AL wild-card race.
Shields (12-9) allowed only Lonnie Chisenhall’s solo homer before turning the game over to his stingy bullpen.
Reds 6, Astros 1 — Johnny Cueto threw five scoreless innings in his return from the disabled list and Zack Cozart homered and drove in four runs to help visiting Cincinnati get past Houston.
Pitching for the first time since straining a shoulder muscle June 28, Cueto (5-2) allowed five hits and struck out five.
Tigers 4, Mariners 2 — Rick Porcello (13-8) struck out 10 in six impressive innings, and host Detroit beat Seattle to move a step closer to its third straight AL Central title.
Angels 12, Athletics 1 — C.J. Wilson pitched seven innings of one-run ball for his career-best 17th win, and visiting Los Angeles became the first team in nearly four months to beat Jarrod Parker in a rout of Oakland.
Diamondbacks 2, Dodgers 1 — Paul Goldschmidt hit a two-run home run in the first inning and Trevor Cahill and three relievers made it stand up in host Arizona’s win over Los Angeles.
White Sox 12, Twins 1 — Erik Johnson pitched six scoreless innings to earn his first major league win, and host Chicago scored a season high in runs to coast past Minnesota.
Phillies 12, Marlins 2 — Cliff Lee (14-6) had three hits, knocked in a career-high four runs, and struck out a season-high 14 to lead host Philadelphia to a rout of Miami.
Brewers 6, Cubs 1 — Caleb Gindl had three hits, including a two-run home run, and Wily Peralta pitched six strong innings to lead host Milwaukee.