SEATTLE — Bartolo Colon came within seven outs of a perfect game, giving up a single to Robinson Cano with two outs in the seventh inning, and the New York Mets held off a late rally to beat the Seattle Mariners 3-2 on Wednesday.
The 41-year-old Colon retired the first 20 batters he faced before Cano lined a 2-2 pitch into left field. Colon (9-8) improved to 13-1 all-time at Safeco Field. Seattle had no answers for the rotund right-hander, who gave up two runs and three hits in 7 1-3 innings.
Taijuan Walker (1-2) walked six and struck out five in his first start in the majors since July 7.
TIGERS 11, DIAMONDBACKS 5
PHOENIX — Miguel Cabrera hit a three-run homer, Austin Jackson a three-run double and the Tigers wore out the Diamondbacks in a slugfest.
Detroit roughed up Trevor Cahill (1-7), going up 7-0 after four innings behind Jackson’s big hit and three RBIs by Alex Avila.
Arizona clawed its way back against Anibal Sanchez (7-4), scoring three runs off him in the fifth and two more over the next two innings.
Joba Chamberlain needed one pitch to escape a jam created by Sanchez in the seventh inning and Cabrera put the Tigers up 11-5 in the eighth, hitting his 15th homer off the foul pole in left.
Didi Gregorius homered and had two RBIs for the Diamondbacks.
TWINS 3, INDIANS 1
MINNEAPOLIS — Anthony Swarzak pitched five sharp innings in a fill-in start, Oswaldo Arcia homered and the Twins beat Cleveland.
Danny Santana scored after two of his three hits for the Twins, and five relievers totaled six strikeouts over four scoreless innings. Glen Perkins finished up in the ninth for his 24th save in 27 tries.
When Kyle Gibson developed a sore back the day before, Swarzak (2-0) was summoned from the bullpen to replace him in the rotation. He threw 75 pitches and allowed just two hits and one walk while striking out three.
Trevor Bauer (4-5) finished six innings for the 11th time in 14 starts this season for the Indians.
ROYALS 2, WHITE SOX 1
CHICAGO — Mike Moustakas scored the tiebreaking run in the top of the ninth inning when White Sox catcher Tyler Flowers couldn’t handle a throw home, and Kansas City beat Chicago 2-1 in the rubber game of a three-game series.
Moustakas triggered the decisive rally with a lead-off single off Zach Putnam (3-2), the last of four White Sox pitchers. Alcides Escobar bunted Moustakas over before Nori Aoki flared a single to center field.
Adam Eaton’s strong throw beat Moustakas to the plate, but Flowers lost control of the ball when the runner slid into him.
Wade Davis (6-2) pitched a scoreless inning and Greg Holland retired the side in order in the ninth inning for his 26th save.
ROCKIES 6, NATIONALS 4
DENVER — Jorge De La Rosa struck out a season-high 11 as he pitched efficiently into the eighth inning and the wobbly Colorado bullpen held off Washington’s late rally, helping the Rockies snap a seven-game.
LaTroy Hawkins got out of a bases loaded jam in the ninth to protect De La Rosa’s fine effort.
De La Rosa (11-6) was one strikeout away from matching his career high set in 2009. The hard-throwing lefty allowed two runs — one earned — before being lifted for a reliever with one out in the eighth.
Stephen Strasburg (7-8) settled in after a shaky start, giving up four runs — three of which were in the first — and nine hits over 5 1-3 innings.
BREWERS 5, REDS 1
MILWAUKEE — Mark Reynolds homered twice and the Brewers completed a three-game sweep of the Reds.
Kyle Lohse pitched 6 2-3 innings to hand the Reds their sixth straight loss since the All-Star break.
Lohse (11-4) walked two, struck out three and allowed four hits.
Reynolds connected on a 1-1 pitch from Reds starter Mike Leake (7-9) for his 15th home run of the season. Rickie Weeks was on with a double to start the sixth.
Reynolds’ second home run came off reliever Jumbo Diaz in the eighth.
YANKEES 2, RANGERS 1, 5 innings
NEW YORK — Brett Gardner hit a tiebreaking homer off All-Star ace Yu Darvish, and New York won the rain-shortened game called in the fifth inning under bizarre circumstances.
David Phelps (5-4) pitched out of a jam just before the storm, and Francisco Cervelli doubled twice to help the Yankees win for the fifth time in six games on a 10-game homestand.
Phelps gave up five hits in his first career complete game. After a one-out triple by Leonys Martin in the fifth, the right-hander retired Chris Gimenez on a foul popup and struck out Rougned Odor.
Play was halted with one out in the bottom of the fifth, and the game was called after a delay of 1 hour, 49 minutes. It appeared the teams were ready to resume at one point, but managers Joe Girardi and Ron Washington expressed concern about the dangers of a soft, wet field.
After much discussion, a light rain returned and the tarp was put back on the field. Less than 10 minutes later, the game was stopped for good — giving the Yankees the victory.
Darvish (9-6) allowed four hits over 4 1-3 innings. He struck out five and walked none.
It took 13 minutes and three tries for the grounds crew to pull the soaked tarp over a drenched infield.
PIRATES 6, DODGERS 1
PITTSBURGH — Josh Harrison had two hits with two RBIs and Pittsburgh jumped on Dan Haren early in the win.
Harrison’s two-run double capped a four-run outburst in the first against Haren (8-8). Pittsburgh has won five of six since the All-Star break to move a season-high seven games over .500 (54-47).
Travis Snider added two hits, including his fifth homer, for the Pirates. Francisco Liriano (2-7) allowed one run and four hits over seven innings to pick up his first victory since May 30.
Pittsburgh batted around in the first against Haren, who has lost four consecutive starts. The right-hander settled down to get through five innings.
Los Angeles didn’t collect a hit until Miguel Rojas doubled with one out in the fifth.
Haren retired the last 10 batters he faced but fell to 0-4 with a 9.47 ERA in July.
GIANTS 3, PHILLIES 1
PHILADELPHIA — Hunter Pence drove in all of San Francisco’s runs with a double in the ninth and Madison Bumgarner pitched eight scoreless innings.
Bumgarner (12-7) gave up five hits while striking out six and walking none in a pitchers’ duel with A.J. Burnett.
It was the sixth win in seven games for first-place San Francisco, which moved two games ahead of Los Angeles in the NL West.
One night after blowing just his third save in 26 chances, closer Jonathan Papelbon (2-2) took the loss.
The Phillies managed just seven hits. They lost their fourth straight and seventh of eight.
Pence broke a scoreless tie with a softly hit blooper down the right-field line off Papelbon on a full count with two outs.
Marlon Byrd drove in Philadelphia’s run in the ninth off Santiago Casilla, who converted his seventh save in 10 chances.
BLUE JAYS 6, RED SOX 4
TORONTO — Jose Bautista homered and drove in two runs and R.A. Dickey won for the first time in three starts for Toronto.
Bautista hit an RBI double in the first inning and added a leadoff homer in the seventh, his first since July 2.
David Ortiz hit a three-run homer for the Red Sox, his fourth in three games, but Boston lost its second straight after winning the previous five.
Dickey (8-10) allowed four runs and nine hits in six innings, walked one and struck out five.
Rookie Aaron Sanchez, selected from Triple-A Buffalo on Tuesday, made his debut with two perfect innings and Casey Janssen finished for his 15th save in 17 chances.
Ortiz’s 455th homer tied him with Adam Dunn of the Chicago White Sox for 35th on the career list.
Ortiz’s drive was his 37th at Rogers Centre, breaking a tie with Alex Rodriguez for the most by a visiting player. The three RBIs gave Ortiz 1,501 for his career, making him the 53rd player in major league history with 1,500 or more.
BRAVES 6, MARLINS 1
ATLANTA — Freddie Freeman hit a three-run homer and Ervin Santana won his second straight start for Atlanta.
Freeman, an All-Star first baseman, broke out of a slump in the season series against the Marlins, ending a 2-for-44 stretch by hitting his 14th homer as the Braves took a 5-0 lead in the four-run third inning.
Santana (9-6) won for third time in four starts, giving up six hits and one run with three walks and 10 strikeouts in 7 1-3 innings.
Santana registered double-digit strikeouts for the second time this year and the 13th time in his 10-year career.
Nathan Eovaldi (5-6) failed to win for his fifth straight start after allowing six hits, five runs and two walks in seven innings. He struck out two.
RAYS 3, CARDINALS 0
ST. LOUIS — Alex Cobb struck out 10 and drove in a run with his first major league hit, leading Tampa Bay to its seventh straight win.
Cobb (6-6) blanked the Cardinals on five hits over seven innings. It was the fourth time he has thrown at least seven innings without an earned run this season. Cobb missed 50 games last season with a concussion after he was hit near the right ear by a line drive off the bat of Kansas City’s Eric Hosmer.
Jake McGee pitched the ninth inning for his ninth save in 10 opportunities.
The Rays have won 25 of their last 36 games and are 13-4 in July. On June 29, they had the worst record in the majors and have passed 11 teams since.
Tampa Bay completed its road trip at 5-0 and its eight-game road winning streak ties the franchise record set twice. The loss was the third straight for the Cardinals.
St. Louis starter Lance Lynn (11-7) had won three straight and was 4-1 in his last five home starts. He struck out seven and gave up six hits in 6 1-3 innings.
PADRES 8, CUBS 3
CHICAGO — Tommy Medica hit a go-ahead RBI double in the fifth inning and Ian Kennedy pitched six strong innings for San Diego.
Kennedy (8-9) won his third straight decision. He allowed three runs and three hits, while striking out six and pitching around a season-high five walks. He worked out of a bases loaded jam in the fifth inning.
Medica finished with three hits and drove in two runs for the Padres, who came into the game with baseball’s worst batting average at .215.
Luis Valbuena hit a three-homer for the Cubs, who have lost 12 of 15.
Cubs starter Tsuyoshi Wada (0-1) allowed five runs, five hits and four walks in four-plus innings. It was his second career start after a no-decision against the Reds on July 8.
After a leadoff walk in the first inning, Yangervis Solarte hit an RBI triple to right. Solarte then scored on Carlos Quentin’s sacrifice fly to give the Padres a 2-0 lead.
ANGELS 3, ORIOLES 2
ANAHEIM, Calif. — Kole Calhoun drew a bases-loaded walk from reliever Brian Matusz in the eighth inning after a tying RBI double by Erick Aybar for Los Angeles.
Jered Weaver (11-6) allowed two runs and six hits through eight innings, striking out six and walking none before the Angels recorded their major league-best 31st come-from-behind win.
Orioles right-hander Chris Tillman allowed a run and five hits over six innings, stranded seven runners in scoring position and picked off another at second base before handing a 2-1 lead to Tommy Hunter.
Josh Hamilton led off the eighth with a bloop single off Hunter (2-2) and came around on Aybar’s double to left-center. A two-out intentional walk to Efren Navarro and another walk to Chris Iannetta loaded the bases for Calhoun, who walked on a 3-1 pitch.
The Angels, who came in leading the majors in runs scored, stranded two runners in scoring position in the first, fifth and sixth innings. The Angels were 0 for 12 in those situations Wednesday, and 3 for 25 during the three-game series.
Huston Street pitched a hitless ninth for his first save since joining the Angels last Friday in a trade with the San Diego Padres.
ATHLETICS 9, ASTROS 7
OAKLAND, Calif. — Oakland’s Yoenis Cespedes homered twice and tied a career high with five RBIs before leaving with an apparent right thumb injury.
Cespedes hit a three-run homer in the second inning and a two-run shot in the fourth off Brad Peacock (3-7), his 15th and 16th this season.
Cespedes was replaced in left field with the A’s leading 8-1 in the seventh. But the Astros almost pulled off an improbable comeback, scoring five runs in the eighth before the back of Oakland’s bullpen shut them down.
Jesse Chavez (8-6) allowed two runs and four hits in 5 2-3 innings to help the A’s (62-38) extend the best record in baseball. He struck out seven and walked two.
Struggling reliever Jim Johnson gave up four runs — three earned — without recording an out to spark Houston’s eighth. Luke Gregerson stranded two runners on base in the inning, and Sean Doolittle recorded his 15th save in 18 tries with a perfect ninth.