PHILADELPHIA (AP) -- In a change of recent fortune, luck was on Cole Hamels' side this time.
Chase Utley had the go-ahead RBI and Ben Revere and Marlon Byrd drove in runs for the Phillies, who won for just the third time in their last nine.
Kendrys Morales homered for Seattle, which was bidding to move 12 games over .500 for the first time since 2007. The Mariners, who are battling Detroit for the AL's second wild-card spot, lost for just the third time in 10 games.
Hamels (7-6) snapped his string of seven straight starts going at least seven innings, but picked up the win in a rare reversal of fortunes. The left-hander entered Wednesday with the eight-best ERA in baseball but there were more than 100 pitchers with more victories. Hamels didn't have his best stuff against the Mariners, giving up three runs on nine hits with four strikeouts, one walk and two wild pitches, but he got just enough run support and a lift from the Philadelphia bullpen.
''He's pitched outstanding,'' Phillies manager Ryne Sandberg said. ''He was due for a win like this with not his best stuff and his teammates picking him up. He's on a long roll of good games and some of them without the run support. He was due for one today.''
Hamels said: ''I think the team definitely played really well with getting the runs in when we needed to.''
Jonathan Papelbon struck out two in a scoreless ninth for his 30th save in 33 opportunities. Jake Diekman followed Hamels and struck out four in two scoreless frames and Ken Giles fanned the side in the scoreless eighth.
James Paxton (3-1) took the first loss of his career after the shortest outing in his 10th start. He lasted four innings while allowing four runs - one earned - on seven hits. The 25-year-old Paxton was 6-0 in his career.
''I probably could've executed pitches a little bit better,'' Paxton said. ''But they were finding holes with ground balls, a couple bloopers in there, but that's baseball.''
Philadelphia was helped by Paxton in the fourth. After Nieves led off with a single, Andres Blanco hit a liner off Paxton's left ankle. The pitcher retrieved the ball but threw it away to put runners on second and third with no outs. Nieves scored on a passed ball and Utley's RBI single made it 4-3.
Mariners: Paxton stayed in the game after taking Blanco's line drive off his left foot in the fourth inning. He said afterward he was OK.
Phillies: OF John Mayberry Jr. had a pair of hits on Tuesday in his first rehab game with Triple-A Lehigh Valley at Pawtucket. Mayberry has been on the DL since July 21 with left wrist inflammation.
Mariners: Seattle takes Thursday off before heading to Boston for a three-game series at Fenway Park beginning at 4:10 Friday afternoon. Felix Hernandez (13-4, 1.99) takes the hill for the Mariners for the first time since snapping his MLB record of 16 straight starts with seven or more innings and two runs or fewer.
Phillies: Following Thursday's off day, RHP Kyle Kendrick (5-11, 4.90) takes the mound as Philadelphia opens a three-game home series with the Cardinals at 7:05 Friday. Kendrick is 1-3 with a 5.49 ERA in his last seven starts. Following his last start, Kendrick apologized a day after storming off the mound and not waiting for manager Ryne Sandberg when he was lifted after allowing three earned runs in five innings of a 6-5 loss to the Giants on Saturday.
SUPPORT FOR TANEY
Sandberg replaced his customary Phillies uniform and cap with one bearing the name of Taney at his postgame news conference and pledged the team's support for the Philadelphia team in the Little League World Series.
''We all played Little League so we can relate,'' Sandberg said. ''It's back to the basics of having fun and jumping around and doing all of the things they do. To have someone to cheer for and pull for, that doesn't happen every year. We have somebody to pull for.''
The Mariners had their streak of 15 straight wins when scoring three or more runs snapped.