Rangers 4, Angels 2
At Arlington, Texas, Jamey Wright allowed two runs in six innings and Marlon Byrd drove in the tiebreaking run for Texas with a single in the sixth inning.
Wright (2-2) gave up five hits, struck out two and walked two.
C.J. Wilson pitched a perfect seventh, Joaquin Benoit struck out the side in the eighth, and Eric Gagne retired all three batters in the ninth for his 11th save.
Frank Catalanotto and Gerald Laird both had three hits for Texas.
Blue Jays 10, Athletics 3
At Oakland, Calif., Matt Stairs homered and drove in four runs, Dustin McGowan pitched seven scoreless innings and the Toronto Blue Jays wrapped up a 10-game road trip with a win.
McGowan (5-4) got all the support he needed in the first inning when Stairs hit a two-run double and the Blue Jays took advantage of four walks to chase a wild Joe Kennedy (2-7).
Twins 6, Yankees 2
At New York, Johan Santana pitched seven crisp innings to win his fourth straight start and Jason Kubel hit a tiebreaking homer to help the Twins.
Santana (10-6) gave up two runs and four hits, struck out five and walked two. The All-Star left-hander hasn't lost since June 9 against Washington.
Red Sox 7, Devil Rays 5
At Boston, All-Star Mike Lowell homered to help carry a lineup of Red Sox reserves, and Tim Wakefield cruised through six innings to send Tampa Bay to its 10th consecutive loss.
Wakefield (9-8) left with a 7-1 lead, after three of the first four batters he faced in the seventh singled. The knuckleballer was charged with four runs and seven hits in 6 1/3 innings, walking two and striking out two for his fourth win in five starts.
Tigers 6, Cleveland 4
At Detroit, Brandon Inge drove in two runs and Kenny Rogers made another strong start since returning from shoulder surgery as Detroit snapped Cleveland's six-game winning streak.
Rogers (3-0) allowed two runs - one earned - and seven hits, walking three and striking out three in 5 1/3 innings. He has won all three starts and has a 1.04 ERA since coming off the disabled list June 22.
Orioles 9, White Sox 6
At Chicago, Jay Gibbons homered and Kevin Millar hit two doubles for Baltimore.
Rob Mackowiak hit a three-run homer and Josh Fields added a solo shot for the White Sox, who have lost 14 of their last 19 home games.
Cards 5, Diamondbacks 4
At St. Louis, Juan Encarnacion and Scott Rolen hit consecutive RBI doubles in the eighth inning to help St. Louis overcome an early three-run deficit.
Starting pitcher Livan Hernandez and Miguel Montero both hit a two-run homer off Brad Thompson for Arizona, which has five homers in the last two games.
Rockies 17, Mets 7
At Denver, Todd Helton and Garrett Atkins both drove in a season-high five runs and Colorado became the first team in more than half a century to sweep two New York clubs in the same year.
Colorado's three-game sweeps of the Yankees and Mets at Coors Field were sandwiched around a 1-9 trip, the worst three-city swing in franchise history.
Giants 9, Reds 5
At Cincinnati, Fred Lewis hit another grand slam and slumping starter Matt Cain turned it into a long-awaited win, while Barry Bonds watched from the dugout with a day off.
Lewis, a 26-year-old rookie filling in for the Giants' slugger, had three hits, including a fourth-inning grand slam off Matt Belisle (5-6).
Padres 1, Marlins 0
At San Diego, Chris Young allowed five hits and struck out nine in seven innings, and Mike Cameron scored on an error by Florida catcher Miguel Olivo with no outs in the ninth. Young lowered his ERA to 2.00, tying Brad Penny of the Los Angeles Dodgers for the best in the majors.
Atlanta 5, Dodgers 2
At Los Angeles, Andruw Jones homered and Chipper Jones and Brian McCann added RBI singles as Atlanta snapped a three-game losing streak.
Braves starter Chuck James
(8-7) allowed one run and four hits in five innings. Bob Wickman pitched the ninth for his 15th save in 19 chances. The Dodgers did get the tying run to the plate in the inning, but pinch-hitter Olmedo Saenz struck out to end the game and Los Angeles' three-game winning streak.
Nationals 6, Cubs 0
At Washington, D.C., Dmitri Young hit a grand slam and Matt Chico pitched seven innings of four-hit ball, leading the Washington Nationals to a 6-0 victory over the Chicago Cubs on Wednesday. Ryan Zimmerman also homered for the Nationals, who had lost seven of eight and hadn't scored more than three runs in 10 straight games. It was only the second time in 19 games they scored at least five runs.
Phillies 8, Astros 3
At Houston, Ryan Howard had a two-run homer and an RBI single to help Cole Hamels earn his elusive 10th win for Philadelphia.
Wes Helms, Jimmy Rollins and Pat Burrell homered and Chase Utley went 3-for-4 with a single, double and triple for the Phillies, who won for the third time in nine games.
Pirates 5, Brewers 3
At Pittsburgh, Adam LaRoche hit a go-ahead, two-run homer in the sixth inning, leading the Pirates past the team with the worst record in the majors on the Fourth of July.