Longoria hit a two-run shot before B.J. Upton’s homer gave Tampa Bay back-to-back homers for the first time this season in the Rays’ four-run third inning. Sean Rodriguez had three hits and scored twice and Longoria drove in a run in the fifth inning.
Chris Johnson drove in Houston’s run with a double in the seventh inning. It was the first earned run Shields has allowed in his last three starts.
Houston starter Wandy Rodriguez (5-4) allowed six hits and five runs in six innings to lose for the first time since April 24. He had been 4-0 in seven starts since then.
Shields became the fourth pitcher in the last five years to win three complete games.
Rockies 4, Yankees 2 — Jason Giambi hit a long homer against his former team and Ubaldo Jimenez overcame early wildness to pitch seven impressive innings, leading Colorado over host New York.
A.J. Burnett (7-6) became the first pitcher in Yankees history to strike out four batters in one inning when he followed up three ineffective innings with the major league record-tying performance in the sixth.
Phillies 1, Athletics 0 — Pinch hitter Ben Francisco’s RBI single with two outs in the bottom of the ninth lifted Philadelphia past Oakland in a game in which rookie starters Vance Worley and Guillermo Moscoso took no-hitters into the sixth.
Diamondbacks 7, Tigers 6 — Wily Mo Pena, called up from the minors this week, hit a towering solo home run in the eighth inning, and visiting Arizona held on to beat Detroit.
Nationals 9, White Sox 5 — Brian Bixler raced home on shortstop Alexei Ramirez’s throwing error to start a four-run 14th inning as visiting Washington won its first game since manager Jim Riggleman resigned.
Angels 8, Dodgers 3 — Erick Aybar hit a go-ahead, two-run homer in the fifth inning and Howie Kendrick added a solo shot, rallying the Angels in the Freeway Series opener.
Brewers 4, Twins 3 — Prince Fielder doubled in the go-ahead runs with two outs in seventh to raise his NL-leading RBI total to 65 and rally Milwaukee over visiting Minnesota.
Orioles 5, Reds 4 — Derrek Lee led off the bottom of the 12th with a home run to give Baltimore the victory.