SEATTLE -- Jason Donald hit the ball in the perfect place to help the Cleveland Indians get a big win.
Donald's tiebreaking single off Seattle reliever Tom Wilhelmsen in the top of the seventh capped the Indians' rally from a seven-run deficit to beat the Mariners 9-8 Tuesday night.
"I didn't hit it all that hard, but hit it in the right spot," Donald said.
Mariners reliever Charlie Furbush (0-1) allowed a hit by Travis Hafner and a walk to Shelley Duncan before striking out the next two in the seventh and being replaced. However, Wilhelmsen could not close the inning, giving up Donald's hit to right field.
Cleveland reliever Rafael Perez (1-0) pitched a scoreless sixth inning to pick up the win. Chris Perez got his third save in four tries, getting out of a bases-loaded jam in the bottom of the ninth when John Jaso flew out to right field on a 2-0 pitch.
Earlier in the inning, a ground ball took a bad hop and hit Donald in the mouth before trickling into center field. That put runners on first and third with one out.
"A bad hop was an understatement," said Donald, who finished with two hits and two RBI. "I just saw it at the last second kick up. I didn't put a glove on that thing, nothing. It was all face.
|More on Indians-Mariners|
|More MLB Coverage|
"Hopefully my girlfriend still wants to date me after getting smoked in the mouth like that."
Justin Smoak had a career-high four hits for Seattle.
Carlos Santana's three-run homer was the main blow in Cleveland's seven-run fifth inning that tied the score at 8-all. It also gave the Indians a homer in every game this season.
After giving up a run in the first and following that with three scoreless innings, Seattle starter Kevin Millwood allowed five hits and did not get an out in the fifth.
"You try to figure out what's not right and try to fix it," Millwood said. "Tonight, I wasn't able to do that."
Donald's fly to center off reliever Erasmo Ramirez tied the score and capped the Indians' big inning. Once it was over, every Cleveland player had a hit.
Cleveland starter Justin Masterson was cruising along until the fourth inning. Leading 2-1, the Mariners put together five hits and scored six runs, plus Masterson walked two and hit a batter in the inning.
Ichiro Suzuki drove in two runs with a line drive to right field. After Smoak picked up his second single of the inning, Masterson was finally lifted after throwing 71 pitches in 3 2-3 innings. He allowed eight earned runs, walked four and gave up seven hits.
The Indians got on the board in the first when Hafner singled hard to left field to drive in Michael Brantley. It was a laborious first inning for Millwood, who threw 26 pitches, allowed two hits and walked one. By contrast, Masterson threw just nine pitches in a 1-2-3 first.
Millwood adjusted quickly. He threw 26 pitches over the next two innings and allowed just one hit before unraveling in the fifth.
Jaso hit a two-run homer to drive in Ryan, who had walked, in the bottom of the third inning to give the Mariners a 2-1 lead.
Kyle Seager had the 50,000th hit in Mariners history, a single in the fourth inning. Smoak scored Seattle's 25,000th run on a bases-loaded walk to Brendan Ryan in the same inning. ... The Mariners gave catcher Miguel Olivo the day off. Olivo is hitting .111 this season and also has twice as many strikeouts (8) as hits (4). ... The Indians don't expect SS Asdrubal Cabrera back before their six-game road trip ends. Cabrera was placed on the bereavement list Tuesday following a family death. Cleveland called up LHP Nick Hagadone to replace Cabrera.