Matt Cain pitched the 22d perfect game in major league history and first for the Giants Wednesday night, striking out a career-high 14 batters and getting help from two running catches to beat the Houston Astros, 10-0, in San Francisco.
Cain’s 125-pitch masterpiece featured a pair of great plays by his corner outfielders, and he got pinch-hitter Jason Castro on a grounder to third for his 27th and final out with the sellout crowd of 42,298 roaring.
Left fielder Melky Cabrera chased down Chris Snyder’s one-out flyball in the sixth, scurrying back to make a leaping catch on the warning track. Cain raised both arms and slapped his glove in delight when Cabrera made the play.
Then, right fielder Gregor Blanco ran into right-center to make a diving catch on the warning track and rob Jordan Schafer for the first out of the seventh. The 27-year-old pitcher hugged Blanco in the dugout after the inning.
“Those were unbelievable catches,’’ Cain said. “I mean that right there, that changes the whole thing.’’
It was the fifth no-hitter already this season, and the third in June. Johan Santana tossed the New York Mets’ first no-hitter June 1 and six Seattle pitchers shut down the Los Angeles Dodgers last Friday. Jered Weaver had one for the Los Angeles Angels May 2.
Mets 9, Rays 1 - R.A. Dickey allowed only an infield single during his second career one-hitter and broke New York’s record for consecutive scoreless innings in its victory over host Tampa Bay.
Dickey (10-1) became the first 10-game winner in the major leagues and ran his career-best shutout streak to 32 2/3 innings before yielding an unearned run in the ninth. That topped the previous club mark of 31 2/3 scoreless innings in a row set by Jerry Koosman in 1973.
B.J. Upton’s high bouncer to third base in the first inning was the lone hit off Dickey, who set a career best with 12 strikeouts and did not walk a batter. The 37-year-old knuckleballer permitted only one other base runner, on a throwing error by third baseman David Wright in the ninth.
Wright tried to make a barehand play on the speedy Upton in the first, but couldn’t hang onto the ball.
The Mets are going to appeal the ruling in an attempt to get the infield hit changed to an error.
Yankees 3, Braves 2 - Curtis Granderson had a go-ahead two-run homer in the sixth inning and streaking New York won in Atlanta to complete its second straight three-game sweep.
Hiroki Kuroda (6-6) gave up two runs in six innings. He stranded runners in scoring position in the second, third, and fourth innings before giving up Brian McCann’s two-run shot in the fifth. Granderson answered an inning later with his 19th homer.
Nationals 6, Blue Jays 2 - Stephen Strasburg won his fifth straight start, Tyler Moore hit the first two home runs of his career, and Washington completed a three-game sweep in Toronto.
Ian Desmond also connected as Washington completed the first undefeated six-game road trip since the franchise relocated from Montreal.
Angels 2, Dodgers 1 - Erick Aybar led off the ninth inning with his first home run of the season, Alberto Callaspo also went deep, and the visiting Angels beat the Dodgers in the rubber game of the season’s first Freeway Series.
Reds 5, Indians 3 - Brandon Phillips’s hit a two-run homer and drove in three runs as host Cincinnati defeated Cleveland.
Cardinals 1, White Sox 0 - Lance Lynn struck out a career-high 12 to stay tied for the major league lead in wins and Carlos Beltran hit his NL-best 19th home run as St. Louis ended Chicago’s eight-game road winning streak.
Rangers 1, Diamondbacks 0 - Craig Gentry hit a two-out RBI single in the eighth inning and Matt Harrison combined with two relievers on a six-hitter for host Texas.
Orioles 7, Pirates 1 - Substitute starter Jake Arrieta struck out nine over seven steady innings, Wilson Betemit had a season-high three hits and drove in three runs, and host Baltimore won its fourth straight.
Phillies 9, Twins 8 - Jim Thome drove in four runs against his former team, including a long homer to pad Philadelphia’s lead, and the Phillies hung on in Minneapolis.
Tigers 8, Cubs 4 - Jhonny Peralta had three hits and two RBIs one night after he made two costly throwing errors, and Detroit rallied to win in Chicago.
Royals 4, Brewers 3 - Mike Moustakas walked with the bases loaded in the 11th inning, giving host Kansas City a come-from-behind victory over Milwaukee.
Athletics 10, Rockies 8 - Brandon Inge hit a go-ahead two-run double during a three-run ninth inning, and Oakland rallied to beat Colorado in Denver.
Padres 1, Mariners 0 - Yonder Alonso homered in the seventh inning and Jason Marquis and three relievers combined on an eight-hitter as San Diego won in Seattle.