Cardinals 4, Astros 2: First-year starter Kyle McClellan became the National League's first six-game winner and backup catcher Gerald Laird knocked in two runs with a double as host St. Louis regained first place.
Allen Craig had three hits including a homer filling in as the cleanup batter for injured Matt Holliday. The Cardinals completed a 4-0 homestand behind stingy pitching that allowed only five runs. They jumped a half-game ahead of the Reds atop the NL Central.
McClellan pitched eight innings, allowing just 5 hits.
Rockies 7, Phillies 1: Jason Giambi became the second-oldest player to hit three homers in a game and tied his career high with seven RBI.
Never miss a local story.
Jhoulys Chacin was the beneficiary of Giambi's power display. Chacin (5-2) allowed one run and four hits, striking out a season-high nine in seven innings.
Making a rare start at first base in place of Todd Helton, Giambi went deep in his first three at-bats. The 40-year-old former AL MVP entered 3-for-26 (.115) this season with one home run and four RBI.
Stan Musial is the oldest player to connect three times in a game. He was 41 when he did it against the New York Mets on July 8, 1962.
Mets 1, Nationals 0: Dillon Gee shut down Washington again and ran his record to 3-0, tossing hitless ball until pitcher Livan Hernandez grounded a clean single with two outs in the sixth inning.
The game ended with Washington Manager Jim Riggleman, catcher Ivan Rodriguez and third-base coach Bo Porter hollering at the umpires over a disputed call.
In his major-league debut last September, Gee held the Nationals without a hit until the sixth inning.
Mariners 2, Angels 1: Nine-time Gold Glover Torii Hunter lost Carlos Peguero's fly ball in the sun with two outs in the ninth inning, allowing Jack Cust to score and lift Seattle past visiting Los Angeles. Cust had gotten on base with a check-swing dribbler up the third base line that beat the Angels defensive shift. Cust went to second on a bunt and to third on a groundout.
Twins 11, Athletics 1: Justin Morneau homered and had three hits and Rene Rivera hit his first home run in nearly five years as resurgent Minnesota beat host Oakland.
Blue Jays 3, Rays 2: J.P. Arencibia hit a tiebreaking two-run homer, Juan Rivera also connected and Toronto won a game where all the scoring came on homers. B.J. Upton and Kelly Shoppach had solo shots for the Rays.
Ricky Romero (4-4) allowed one run and three hits in seven innings to win consecutive starts for the first time this season. He walked two and struck out six.