Ed Zurga, Associated Press
Detroit Tigers' Curtis Granderson, right, slides into third for a triple as Kansas City Royals third baman Alex Gordon reaches for the late tag in the seventh inning on Wednesday in Kansas City, Mo.

KANSAS CITY, Mo. — Armando Galarraga carried a perfect game into the seventh inning, Miguel Cabrera drove in three runs and the Detroit Tigers beat the Kansas City Royals 7-1 Wednesday to complete a three-game sweep.

Galarraga retired the first 18 batters before David DeJesus led off the seventh with a single to right on a full-count pitch. To that point, the 26-year-old rookie right-hander had allowed just two fly balls to the outfield and struck out six.

He wound up allowing a run in the seventh on three singles and a walk, but left the bases loaded. Galarraga (8-4) was replaced by Casey Fossum in the eighth, after lowering his ERA to 3.27 while striking out a career-high seven against just one walk.

Zack Greinke (7-7) gave up five runs on seven hits, as the Royals were outscored 33-6 over the three-game series.

RED SOX 6, MARINERS 3 (12): At Seattle, Mike Lowell hit a two-run single off Sean Green in the 12th inning, and the Red Sox took advantage of two outfield errors for their first sweep at Seattle in 15 years. The Red Sox entered the series having lost eight of 11 on the road, but flew home for a weekend against the Yankees after their first three-game sweep on the road this season.

WHITE SOX 10, RANGERS 8: At Chicago, Carlos Quentin hit two home runs, including the go-ahead, three-run shot during a five-run eighth inning to help the White Sox rally. Quentin's go-ahead homer came on the first pitch from Rangers closer C.J. Wilson, who entered in relief of Eddie Guardado with two on and two out. It was the third multihomer game of the season for Quentin, whose shot in the fifth barely cleared the center field wall.

ANGELS 14, INDIANS 11: At Anaheim, Calif., Jeff Mathis had four hits with a career-high six RBIs, including his first grand slam in the majors, and Casey Kotchman had a career-best five hits for the Angels. Los Angeles padded its AL West lead to 10 games over Oakland with a season-high 19-hit attack that included four hits by Howie Kendrick, who also drove in three runs. It was the first time in Angels history that three players each had four or more hits in the same game.

YANKEES 5, TWINS 1: At New York, Mike Mussina baffled the Twins for eight innings, Alex Rodriguez hit a two-run double and the Yankees won their 10th straight at home. Justin Christian also drove in two runs for New York, which completed a perfect post-break homestand with sweeps of Oakland and the Twins. Up next is a three-game trip to Boston. The 10-game winning streak at home is the Yankees' longest since Sept. 9, 1998, to April 14, 1999.

RAYS 4, ATHLETICS 3: At St. Petersburg, Fla., James Shields allowed three runs pitching into the ninth inning, and Jonny Gomes and Ben Zobrist hit back-to-back homers to lead the Rays.

BLUE JAYS 2, ORIOLES 1 (SUSPENDED): At Baltimore, The game between Toronto and the Baltimore Orioles on Wednesday night was suspended by rain with the Blue Jays leading 2-1 in the sixth inning. Play will resume this afternoon with two outs in the top of the sixth. The teams will then play the finale of the four-game series.

National League

BREWERS 3 CARDINALS 0: At St. Louis, CC Sabathia threw a three-hitter, his third straight complete game for his new team. Ryan Braun had four hits, lacking a double for the cycle, and J.J. Hardy hit his 14th homer for the Brewers, who have won seven straight. The Brewers have homered in 19 straight games, tying the franchise record set in 1996, and have 30 home runs in that stretch.

REDS 9, PADRES 5: At Cincinnati, Adam Dunn hit Cincinnati's first grand slam of the season, and the Reds kept Greg Maddux in the longest winless streak of his sterling career. The 42-year-old Maddux hasn't won since May 10, going 14 starts without a victory. He was thwarted again on Wednesday with an assist by the Padres' defense and bullpen.

ROCKIES 5, DODGERS 3: At Denver, Matt Holliday drove in two runs, including one on a double that bounced off the pitcher's glove, and Jeff Baker scored twice to lead the Rockies.

PIRATES 8, ASTROS 7: At Houston, Jason Bay hit a two-run homer to help the Pirates earn their first road sweep of the season and first three-game win streak since May 6-12. Doug Mientkiewicz drove in two runs, starter Ian Snell had an RBI single and Franquelis Osoria (4-3) pitched two innings of scoreless relief as the Pirates finished off their first sweep since taking three from San Francisco at PNC Park from May 6-8.

METS 6, PHILLIES 3: At New York, Jose Reyes' three-run homer snapped a sixth-inning tie and New York, with closer Billy Wagner back, rebounded from a demoralizing defeat. John Maine pitched seven effective innings and New York took advantage of a wild Brett Myers in his return from the minors to again tie the Phillies for first place in the NL East.

BRAVES 9, MARLINS 4: At Miami, Atlanta won despite Chipper Jones straining his left hamstring and starter Tim Hudson departing with tightness in his right elbow. Ricky Nolasco (10-6) allowed eight hits and five runs in five innings, falling to 0-3 in three starts against Atlanta this year, with an ERA of 10.57.

GIANTS 6, NATIONALS 4: At San Francisco, Rich Aurilia lined a go-ahead two-run double in the eighth inning and the San Francisco Giants rallied. Aurilia came up big with an eight-pitch at-bat in which he fouled off three straight pitches before the double.

CUBS 10, DIAMONDBACKS 6: At Phoenix, Reed Johnson hit a grand slam in the eighth inning to cap a six-run inning for the Cubs.