John Lackey held the Dodgers to three hits for 8 2-3 innings, Francisco Rodriguez retired James Loney with the bases loaded for the final out and the Angels avoided a sweep with a 1-0 win over the Dodgers on Sunday. On Saturday night, Jered Weaver and reliever Jose Arredondo did not allow a hit but the Angels lost to the Dodgers 1-0 on an unearned run. Weaver took the loss in the unofficial no-hitter. Mike Napoli's RBI single off Derek Lowe (5-8) in the second inning Sunday was all the offense the Angels needed. Rodriguez, who came in with two outs in the ninth and runners on first and second, walked Jeff Kent to load the bases, then got Loney on a routine grounder to second to earn his major league-leading 32nd save. Tigers 4, Rockies 3: At Detroit, Dane Sardinha hit a two-run triple for his first major league hit to rally the Tigers to a win over woeful Colorado, giving Detroit a three-game sweep. Detroit, which won its fifth straight and 15th in its last 18, has a winning record for the first time this season. Twins 5, Brewers 0: At Minneapolis, Kevin Slowey breezed through his fourth straight dominant start, beating Ben Sheets and Milwaukee with a three-hit shutout. Marlins 4, Diamondbacks 3: At Miami, Jorge Cantu hit a game-ending RBI single, Hanley Ramirez hit a tying home run and the Marlins came back to beat Arizona. Mets 3, Yankees 1: At New York, Oliver Perez pitched another gem against the Yankees, Carlos Delgado homered again and the Mets won this year's Subway Series. Billy Wagner closed out the Mets' fourth win in the six-game rivalry. It was just the second time since interleague play started in 1997 that they've taken the season series. Astros 3, Red Sox 2: At Houston, Mark Loretta had a pinch-hit, RBI single in the eighth inning off Hideki Okajima as the Astros took two of three from the Red Sox. Cardinals 9, Royals 6: At Kansas City, Missouri, Jason LaRue drove in four runs with a home run and a triple and Albert Pujols also homered, leading the Cardinals over Kansas City. Every Cardinal batter had a hit except Adam Kennedy, who scored twice and drove in a run. Mariners 9, Padres 2: At San Diego, Ichiro Suzuki went 5-for-5, Adrian Beltre and Jeff Clement homered and the Mariners beat Jake Peavy and the punchless Padres for a three-game sweep. The three-game winning streak matches the Mariners' season high. Although Seattle still has the worst record in the major leagues at 31-50, the Padres (32-51) are closing fast. The Padres have lost a season-high eight straight games and 13 of 15, all against the AL. The Padres finished interleague play 3-15, worst in the majors. Reds 9, Indians 5: At Cleveland, Bronson Arroyo bounced back from the worst start of his career and Adam Dunn hit a three-run homer to help Cincinnati beat Cleveland for the fifth time in six games this season. Rays 4, Pirates 3: At Pittsburgh, backup catcher Shawn Riggans homered and drove in two runs and Tampa Bay completed a remarkable first-half turnaround, beating Pittsburgh behind Andy Sonnanstine's seven effective innings. Blue Jays 1, Braves 0: At Toronto, A.J. Burnett allowed four hits in seven innings, Alex Rios drove in the only run of the game and Toronto beat Atlanta. Burnett (8-7) struck out a season-high 11 and walked four, one intentional. His 119 pitches were also a season high. Scott Downs worked the eighth, extending his scoreless innings streak to 26, the longest current streak in baseball. B.J. Ryan pitched a perfect ninth to pick up his 16th save in 18 opportunities. Other results: Nationals 3, Orioles 2, 12 innings; Giants 11, Athletics 1; Rangers 5, Phillies 1; White Sox 5, Cubs 1.