Adrian Beltre homered twice -- including a ninth-inning drive off Ron Villone -- to give Seattle a 6-5 victory over the visiting New York Yankees that stopped the Mariners' 11-game losing streak.
Beltre lined an opposite-field drive on a shoulder-high 1-and-2 pitch from Villone (3-2) just over the right-field fence.
Coming off a five-game sweep at Boston, New York had two on with two outs in the ninth, but Julio Mateo (9-4) struck out Alex Rodriguez. The Yankees' AL East lead remained a season-high 6 1/2 games over the second-place Red Sox.
Rodriguez, booed and then mocked by 42,454 of his former Seattle fans for striking out in his first two at-bats, hit a two-run homer in the sixth that put New York ahead, 5-3. Rodriguez's shot off rookie reliever Eric O'Flaherty soared to the top of a tunnel in the second deck of the left-field bleachers at Safeco Field, about six rows from the top of the ballpark.
But the Mariners rallied in the seventh against Jaret Wright. With the bases loaded and one out, Richie Sexson hit a slow, potential double-play, two-hopper to shortstop Derek Jeter. Beltre's slide toppled second baseman Nick Green as Ichiro Suzuki scored.
Villone entered to face Raul Ibanez, who was batting .214 against lefties, and Ibanez singled in the tying run.
Mets 8, Cardinals 7 -- Carlos Beltran hit a two-run homer in the ninth inning, putting a rousing ending to a night of grand-slam derby and rallying the Mets at New York.
St. Louis star Albert Pujols hit a slam and a three-run homer, setting a career-high with seven RBIs. Mets slugger Carlos Delgado almost matched that, crunching a solo shot and a slam to reach 400 homers.
Beltran's one-out drive off Jason Isringhausen (4-7) capped a comeback from a 7-1 deficit, decided a matchup between NL division leaders and gave the Mets a five-game winning streak.
Tigers 4, White Sox 0 -- Kenny Rogers shut down slumping Chicago, giving Detroit its biggest lead in the AL Central (7 1/2 games) in almost two weeks and guaranteeing its first .500 season since 1993.
Rogers (13-6) dominated for seven innings and was backed by Marcus Thames's solo homer and RBI triple in Detroit's win over the visiting White Sox, its second straight victory in a possibly pivotal four-game series.
Reds 14, Astros 0 -- Adam Dunn's three-run homer completed an eight-run third inning that carried host Cincinnati to its fourth straight victory.
Righthander Kyle Lohse (1-0) gave up four hits in eight innings and had three of his own, getting his first victory and his biggest ovations since arriving in a July 31 trade with the Twins.
Padres 1, Dodgers 0 -- Mike Piazza snapped a 0-for-26 slump with an RBI single and Jake Peavy threw seven dominating innings as San Diego beat visiting Los Angeles to pull within two games of the NL West-leading Dodgers.
Royals 5, Indians 2 -- Mark Teahen was 4 for 4 with a home run and two doubles, and scored the go-ahead run on Victor Martinez's throwing error, leading Kansas City over visiting Cleveland.
Marlins 7, Nationals 5 -- Miguel Cabrera reached on an error in the eighth inning and then scored the go-ahead run on Jeremy Hermida's ground out to help Florida beat Washington in Miami.
Devil Rays 5, Rangers 3 -- Rocco Baldelli and Ben Zobrist hit consecutive sacrifice flies in the seventh inning, helping Tampa Bay beat visiting Texas.
Phillies 6, Cubs 3 -- In Chicago, Jamie Moyer, 43, allowed no hits through 4 1/3 innings in his Phillies debut for his first victory in five starts.
Giants 7, Diamondbacks 6 -- Rookie Eliezer Alfonzo doubled in the go-ahead run in the eighth inning as San Francisco beat visiting Arizona.
Pirates 5, Braves 3 -- Freddy Sanchez and Jason Bay hit consecutive run-scoring singles in the eighth inning, rallying Pittsburgh in Atlanta.
Blue Jays 4, Athletics 3 -- A.J. Burnett (6-5) won his fourth straight start and Vernon Wells homered to lead host Toronto.
Brewers 4, Rockies 1 -- Chris Capuano (11-8) gave up three hits in six scoreless innings as host Milwaukee beat Colorado.