CLEVELAND (AP) -- The Cleveland Indians are finding ways to win these days even when something goes wrong.
Jason Kipnis scored the winning run in the ninth inning when Brendan Ryan's throw pulled catcher Jesus Montero off the plate, sending the Indians to a 5-4 victory over the Seattle Mariners on Saturday.
Cleveland pulled out the win after closer Chris Perez allowed two-out solo homers to Raul Ibanez and Justin Smoak that tied the score in the top of the ninth.
''We made it more exciting than it needed to be, but there is something to be said for being resilient,'' Indians manager Terry Francona said. ''Rather than feeling sorry for yourself when you get punched in the gut, we came back to win.''
Kipnis, who won Friday's game with a three-run homer in the 10th, sparked the winning rally with a leadoff single against Oliver Perez (1-1). He moved to third on Asdrubal Cabrera's double and Nick Swisher was walked intentionally to load the bases.
Mark Reynolds then hit a sharp ground ball that forced Ryan to make a diving stop, and he was unable to get the forceout at home.
''That was a very uneventful walkoff, but a win is a win,'' Reynolds said. ''I just tried to put the ball in play somewhere. When I hit it I said to myself, 'please get through,' then it was 'please make a bad throw,' and Then 'please get there.' ''
Reynolds hit his 12th homer and finished with three RBIs as the Indians won for the 16th time in their last 20 games.
''That's baseball,'' Reynolds said. ''We were like, 'Oh well, let's go win it in the ninth. If not, we've got a good bullpen.''
After Kipnis scampered home to end the game, Mariners manager Eric Wedge came on the field to discuss the call with home plate umpire Mike Winters. He quickly went back to the dugout.
''The throw beat him, but Monty came off the plate early,'' Wedge said. ''You have to stand on the plate. You have to, but he came out a little bit early. We got the ground ball we wanted - Ryno made a great play - but we didn't get it done.''
Chris Perez (2-0) retired the first two hitters before Ibanez homered to right, cutting the lead to 4-3. Smoak then homered to center on a 1-1 pitch.
''The one to Ibanez was a mistake,'' Perez said. ''I missed my spot terribly. The one to Smoak, I was trying to throw it on the corner but I missed high. It's frustrating, but it's not one of the worst games I've ever had.''
It was Perez's second blown save in eight chances this season and wasted a strong start by Zach McAllister, who allowed two runs and six hits in 7 1-3 innings.
Reynolds singled in a run in the first against Joe Saunders and drove a 3-2 pitch over the 19-foot high wall in left field in the fifth. Reynolds, signed as a free agent in December, is tied for the AL lead in home runs.
Michael Bourn and Kipnis each singled in a run in the sixth, but Ryan belted a two-run homer in the eighth to keep Seattle in the game.
Saunders allowed four runs and 11 hits in 5 1-3 innings, continuing his road woes. The left-hander is 0-4 with an 11.25 ERA in five starts away from Safeco Field this season, compared to 3-0 with an 0.94 ERA in four home starts.
Asked about his problems pitching away from home, Saunders said, ''I'm gonna sacrifice a chicken before my next road start. ... This is just kind of a fluky thing.''
The Indians and Mariners exchanged baserunning blunders in the middle innings.
Montero hit a leadoff single in the third and moved to second on Ryan's base hit with no outs. But Montero strayed too far from second when Endy Chavez took a strike while squaring around for a bunt attempt. He was tagged out in a rundown and McAllister retired the next two hitters.
Cabrera committed his own baserunning mistake after he led off the fifth with a single. Ibanez caught Swisher's high fly ball in front of the wall in left. Cabrera, thinking the ball was going to be for extra bases, was doubled off first.
The Indians chased Saunders in the sixth. Mike Aviles started the inning with a double and remained at second when Yan Gomes singled through the left side. After a sacrifice and with the infield playing in, Ryan fielded Bourn's ground ball behind the mound but his throw home was too late to get Aviles. Kipnis then blooped a single to left that scored Gomes.
Smoak led off the eighth with a double and scored when Ryan connected for his first homer of the season. Rich Hill recorded the final two outs of the eighth for Cleveland.
NOTES: Mariners RHP Felix Hernandez (5-2) takes on RHP Justin Masterson (6-2) in a matchup of aces Sunday. Hernandez was forced to leave his start against the New York Yankees on Tuesday with back stiffness. ... Indians OF Michael Brantley, hitless in his last seven at-bats, wasn't in the lineup. Aviles started in left field. Brantley came in as a defensive replacement in the eighth. ... Mariners OF Michael Morse returned after missing Friday's game with irritation in his eye and was hitless in four at-bats. ... Mariners RHP Aaron Harang (lower back stiffness) played catch before the game and will throw a bullpen session Sunday. Harang was a late scratch Thursday against the Yankees, but is scheduled to make his next start Tuesday at the Angels. ... Cleveland Browns coach Rob Chudzinski threw out the first pitch and also exchanged uniforms with Indians manager Terry Francona.