PHILADELPHIA -- Jerome Williams was on the waiver wire. Andres Blanco was injured, and out of baseball.

Both emerged on Monday night.

Williams pitched seven strong innings and Blanco hit his first homer in over three years as the Philadelphia Phillies beat the Seattle Mariners 4-1.

Williams, making his second start for Philadelphia since he was claimed off waivers from the Texas Rangers on Aug. 7, allowed one run and three hits to record his first decision with his new club. He struck out four and walked three.

Afterward, he credited catcher Carlos Ruiz for his success.

"I'm doing things I've never did before this year," Williams said. "He has confidence in me to do it, and I have confidence to go out and do it."

The 32-year-old Williams is also willing, finally, to listen. He began this season with Houston, going 1-4 with a 6.04 ERA in 26 relief appearances, then went 1-1 with a 9.90 ERA in two starts for the Rangers.

"I was hard-headed," he said. "I wanted to do it my way and my way got me away from two teams. Right now I'm with this team, and with (Ruiz) behind the plate, it's night and day."

Blanco, making a rare start at shortstop while Jimmy Rollins was given a night off, hit a three-run homer in the fifth inning. He last homered on July 1, 2011, while facing the Miami Marlins as a Texas Ranger. That's a span of 48 at-bats and 32 games in the majors.

It was also just his fourth homer in seven major league seasons. The Phillies are his fourth team, and he played in just his 19th game for them since his contract was selected from Triple-A Lehigh Valley on June 29.

He called the homer "the special one," seeing as he missed the entire 2013 season while recovering from surgery to repair the labrum in his right shoulder.

His doctor, he said, wasn't "really sure I'd be able to get back again. I would say, 'Well, doctor, you've just got to do your part, and let me do mine.' "

Williams left after hitting shortstop Chris Taylor with a pitch to start the eighth. Reliever Ken Giles then allowed two hits and a run, but struck out the side while working out of a jam. Jonathan Papelbon pitched a scoreless ninth for his 29th save, as the Phillies won for just the second time in seven games.

Left fielder Dustin Ackley drove in Seattle's only run with an eighth-inning double, as the Mariners fell for only the third time in 13 games.

Williams, said Seattle manager Lloyd McLendon, "kind of had our number." The veteran right-hander improved to 6-2 in 16 career appearances against the Mariners, eight of them starts.

"Give him credit -- he pitched well," said Seattle second baseman Robinson Cano, who went hitless in four at-bats. "We got ourselves out a lot."

Seattle starter Roenis Elias (9-10) lasted just four innings, allowing one run and three hits. He struck out four and walked a career-high six.

The Phillies broke on top courtesy of right fielder Marlon Byrd's RBI double in the third inning, but they left the bases loaded in the third and fourth against Elias.

Blanco added his three-run homer in the fifth off reliever Dominic Leone. The blast came on a 1-1 pitch after a one-out double by left fielder Darin Ruf and a walk to third baseman Cody Asche.

NOTES: The Mariners optioned OF James Jones to Triple-A Tacoma to clear a roster spot for Monday's starter, LHP Roenis Elias. Jones hit .256 with 20 steals in 83 games for Seattle. ... Phillies OF/1B John Mayberry Jr., on the disabled list since July 21 with an inflamed left wrist, will begin a rehab assignment Tuesday at Triple-A Lehigh Valley. ... The Mariners last played in Philadelphia when they swept a three-game series at Veterans Stadium on June 3-5, 2003. The winning pitcher in the first of those games was Jamie Moyer, who later pitched for Philadelphia and is now a Phillies television broadcaster. ... Philadelphia SS Jimmy Rollins was given a day off. C Carlos Ruiz batted in Rollins' customary No. 2 spot in the lineup.