Adam Eaton pitched seven strong innings and drove in a run as the San Diego Padres beat the Cleveland Indians 3-2 to snap their four-game losing streak on Thursday.
"Eaton did just a great job of helping us stop this little skid that we've been in," manager Bruce Bochy said. "No getting around it, that's a good one to get, the way things have been going."
The Padres won despite getting just three hits, including Brian Giles' solo homer with two outs in the sixth.
Eaton (9-1) won his career-best eighth straight decision and kept the Padres from being swept. They won for just the second time in eight games in June after going 22-6 in May, a club record for victories in a month.
"He's been throwing the ball well and he's a very good pitcher and he did a very good job," Cleveland starter Jake Westbrook said of Eaton.
Westbrook (2-9) allowed just three hits and three runs -- one earned -- in six innings, walked two and struck out two.
Giants 9, Royals 7
At San Francisco, Edgardo Alfonzo hit a go-ahead single in the sixth inning and pinch-hitter Pedro Feliz added a key two-run double.
Rookie Lance Niekro matched his career high with three RBIs and Michael Tucker doubled twice with an RBI in a rare leadoff appearance for San Francisco, which couldn't hold a 4-0 lead for starter Noah Lowry.
Scott Munter (1-0) earned his first major league victory -- and the slumping Giants won for just the second time in 13 games. Tyler Walker got four outs for his ninth save in 10 chances.
Nationals 4, Athletics 3
At Washington, Livan Hernandez pitched eight strong innings to win his eighth straight decision, and Nick Johnson hit a three-run double to lead Washington to its season-best seventh victory in a row.
Chad Cordero got three outs for his 17th save in 19 chances. It was the Nationals' 14th one-run victory, tied for the most in the NL.
Washington did all its scoring in the third inning, batting around against starter Joe Blanton (1-6), who went six innings and gave up seven hits.
Mariners 8, Marlins 0
At Miami, Aaron Sele threw seven strong innings and Randy Winn celebrated his 31st birthday with his first homer of the year.
Winn had two RBIs, as did Richie Sexson and Raul Ibanez -- both of whom knocked in their runs in Seattle's six-run seventh inning that knocked out Marlins starter Josh Beckett (7-4), who lost at home for the first time in six decisions this season.
Sele (5-5) won for the third time in his last four starts.
Phillies 10, Rangers 8
At Philadelphia, Pat Burrell homered twice and drove in four runs to help Philadelphia complete a three-game sweep.
Todd Pratt homered and had four RBIs and Jim Thome also connected for the Phillies, who held on for their 12th win in 14 games.
Mark Teixeira hit a pair of homers and five RBIs.
Vicente Padilla (3-5) allowed four runs and four hits in five innings to win his second straight start. Billy Wagner earned his 17th save in 19 chances.
Pedro Astacio (2-7) gave up five runs and seven hits in four innings.
Reds 14, Devil Rays 5
At Cincinnati, Luke Hudson won his season debut with six solid innings on a steamy night, and Cincinnati completed a three-game sweep of major league baseball's worst road team.
Casey Fossum (2-4) walked a season-high six in only four innings, needing 102 pitches to get that far. By the time he left trailing 5-1, the tone was set.
Hudson (1-0) was activated before the game and gave up three hits, including two-run homers by Carl Crawford and Jorge Cantu.
Diamondbacks 4, Twins 3
At Phoenix, Jose Cruz Jr. homered to spark a three-run fourth inning and Javier Vazquez pitched six solid innings for Arizona, which won for just the second time in nine games.
Vazquez (6-4) allowed three runs and three hits and Brian Bruney struck out pinch-hitter Matt LeCroy for his sixth save in nine chances.
Justin Morneau and Jacque Jones homered for the Twins, whose three-game winning streak was snapped.
Kyle Lohse (5-4) allowed four runs and seven hits with four walks and two strikeouts.