B.J. Upton hit three home runs, James Shields threw a two-hitter, and the Tampa Bay Rays beat the Texas Rangers, 6-0, Sunday in St. Petersburg, Fla.

Upton hit solo homers in the first, fourth, and sixth innings. He struck out in second, and received a standing ovation before hitting a grounder to third in the eighth. He joined Evan Longoria (2008) and Jonny Gomes (2005) as the only Tampa Bay players with three-homer games.

Shields (14-8) permitted just three baserunners. Elvis Andrus reached on a first-inning error, Nelson Cruz had an infield single in the second, and David Murphy singled in the eighth. Shields struck out eight in his second shutout this year. The other came in a 3-0 win over Oakland on July 31.

Advertisement - Continue Reading Below

Upton put the Rays up,1-0, on a first-pitch leadoff homer against Roy Oswalt (4-3). Matt Joyce, mired in an 8-for-60 slide, made it 2-0 later in the inning with an RBI double. Upton had a fourth-inning shot off Martin Perez that extended the lead to 5-0. He also hit his 21st homer against the lefthanded reliever in the sixth.

Yankees 13, Orioles 3 — Slumping Curtis Granderson came off the bench to hit his 35th homer and drive in five runs, and New York beat host Baltimore to regain sole possession of first place in the AL East.

Derek Jeter also homered for the Yankees, who lead the Orioles by one game with 22 left. Each team won twice in a four-game set that drew 173,572 fans, including 40,346 in the finale.

Angels 3, Tigers 2 — Zack Greinke pitched seven innings of five-hit ball with seven strikeouts, Mike Trout hit a leadoff homer for the second straight day, and Los Angeles completed its second straight series sweep with a victory over visiting Detroit.

Greinke (5-2) won his fourth straight, and Alberto Callaspo hit a two-run homer for the Angels, who have won six straight, 11 of 12 and 15 of 18.

Athletics 4, Mariners 2 — Jonny Gomes hit a three-run homer and Tommy Milone worked six strong innings as Oakland finished a three-game sweep of host Seattle.

Milone (12-10) allowed eight hits and two runs, matched a career high with 10 strikeouts and had no walks.

Twins 8, Indians 7 — Justin Morneau hit his second homer of the game in the bottom of the ninth inning to lift Minnesota over Cleveland. Morneau, who has four two-homer games this season, also hit a two-run shot in the third inning.

Giants 4, Dodgers 0 — Barry Zito (11-8) allowed four hits in 6 innings for his third straight win as host San Francisco beat Los Angeles to extend its division lead to 5½ games. Hunter Pence hit a two-run double in the first inning and Buster Posey homered in the Giants’ fifth win in the last six meetings of the rivalry.

Royals 2, White Sox 1, — Mike Moustakas stroked a go-ahead single in the 10th inning to lift Kansas City over host Chicago. The Royals plated both of their runs with two outs in the 10th off Brett Myers (2-3), the seventh of eight White Sox pitchers.

Marlins 8, Nationals 0 — Ricky Nolasco tossed a four-hitter to shut out host Washington for the second time in two weeks and Giancarlo Stanton homered for the third straight day to lead Miami. Nolasco (12-12) struck out six and walked one.

Braves 3, Mets 2 — Brian McCann homered and drove in the go-ahead run in the 10th inning to give Atlanta the victory in Chipper Jones’s final game in New York.

Jones did not start, but manager Fredi Gonzalez sent him out with the lineup card and the retiring Braves star got a warm hand from Mets fans. Jones walked as a pinch hitter in the ninth inning and left for a pinch runner. As he walked to the dugout, he got a standing ovation.

Cardinals 5, Brewers 4 — Allen Craig hit an RBI single with two outs in the 10th inning and St. Louis beat visiting Milwaukee to avoid a three-game sweep. The Brewers tied it in the ninth on Norichika Aoki’s two-out, two-run homer off closer Jason Motte.

Astros 5, Reds 1 — Matt Dominguez hit a three-run homer and Tyler Greene added a solo shot as Houston beat host Cincinnati. Edgar Gonzalez (2-0) allowed two hits and one run in five innings for the win.

Padres 8, Diamondbacks 2 — Chase Headley hit a grand slam to extend his career-bests to 27 homers and an NL-high 102 RBIs, and Carlos Quentin followed with a homer for host San Diego’s first back-to-back shots this season.

Phillies sweep Rockies — Ryan Howard drove in two runs to help host Philadelphia beat Colorado, 7-4, and complete a doubleheader sweep. John Mayberry Jr. hit an RBI single in the ninth inning of the opener to lift the Phillies to a 3-2 win. Jonathan Papelbon (5-6) picked up a win in the first game and his 32d save in the nightcap.

Cubs 4, Pirates 2 — Alfonso Soriano hit a go-ahead two-run homer in the eighth inning as visiting Chicago completed a three-game sweep of fading Pittsburgh.