CLEVELAND -- Chris Perez was stunned, surprised and shocked.
And he was hardly alone.
The Cleveland Indians somehow pulled out a game they had no business winning.
"Best game I've ever been a part of," said Perez. "It was the craziest, most fun ... obviously, it stunk to give up a home run, but it was still fun."
Yan Gomes hit a three-run homer in the 10th inning as the Indians, revived by Seattle fielding errors in the final two innings, beat the Mariners 10-8 on Monday to complete a four-game sweep and continue a season that's shaping into one to remember in Cleveland.
Gomes, who also homered in the second, drove a 3-2 pitch from Charlie Furbush (0-3) over the wall in left, giving the Indians their fifth straight win, third walk-off over the Mariners in four days, and one of the most improbable victories in memory.
As Gomes reached the plate, he was mobbed by his teammates following the comeback that became necessary after Cleveland's bullpen gave up homers in the eighth, ninth and 10th innings.
"You don't look up very often and see your opponent score three straight innings and you win," Indians manager Terry Francona said. "That was interesting."
It was the Indians' first four-game sweep of Seattle since 1981, and the rally gave Cleveland its 18th win in 22 games.
Ryan Raburn hit a three-run homer for Cleveland, which opened a 2 1-2 game lead over the Detroit Tigers in the AL Central. The teams play a two-game series starting Tuesday.
The Mariners got a tying homer by Kyle Seager in the eighth off Vinnie Pestano and a go-ahead shot by pinch-hitter Endy Chavez in the ninth off Perez, but couldn't close it out because of their own miscues.
"It was another weird game," Mariners manager Eric Wedge said. "We're just on the south side of things right now."
The Indians were an out away from losing in the ninth when Seattle closer Tom Wilhelmsen dropped an underhanded toss while covering first, allowing the Indians to tie it at 7.
After Smoak homered in the 10th, the Indians were three outs away from losing when the Mariners helped them again.
Michael Brantley singled and Drew Stubbs followed with a bunt that Furbush, seeking his first career save, fielded but bobbled. The left-hander rushed his throw to first and would have had Stubbs -- umpire Tim Timmons called him out -- but Smoak dropped the ball.
Gomes then delivered his game-winning homer, taking an unexpected trip around the bases after it looked as if the Indians were finished.
"Moments like that, you just want to get back to your teammates," said Gomes, "just run around and make sure you don't miss a base. It was exciting. You just don't know what to do with your hands. I was like, 'Wow, this game's done."'
It was another sign of resiliency by the Indians.
"You're supposed to play 'til they send you home," Francona said. "It's a good feeling. Once you do it a few times I think that breeds some confidence. Whether it's picking each other up, it's getting contagious, and that's good."
The final three innings bordered on the absurd as the Mariners took the lead only to give it away with bone-headed plays.
"We kept coming back and kept taking the lead," Wedge said. "We weren't able to make plays or make pitches when we needed to late. We weren't able to finish things off."
Wilhelmsen's error in the ninth not only cost the Mariners a certain win, but it allowed Perez to escape a loss after he gave up the homer to Chavez. It was another bad outing for Perez, who allowed back-to-back homers in the ninth on Saturday but wound up getting a win.
"I didn't my job today, but you can't feel sorry for yourself or hang your head," said Perez, who has managed to keep his sense of humour despite the rough outings. The only runs I've given up this year have been solo home runs. Maybe if I can walk the leadoff hitter, we'd be all right."
With Seattle trailing 6-5 in the eighth, Seager homered off Pestano, who recently came off the disabled list, into the Mariners' bullpen for his fifth homer.
The Indians took a 6-5 lead in the seventh off Yoervis Medina without hitting the ball beyond the infield grass. Starter Hisashi Iwakuma was tagged by the Indians for five runs in four innings, but the right-hander settled in and retired the final seven hitters he faced. He gave up seven hits and struck out six in six innings.
Indians starter Scott Kazmir didn't get out of the fourth as the teams combined for 10 runs and 14 hits through four innings. Raburn and Gomes hit back-to-back, two-out homers in the second, when the Indians caught a break to take a 4-2 lead.
With Carlos Santana on with a one-out double, Mark Reynolds just missed a homer, flying out to the track in left. Brantley walked and Raburn fell into an 0-2 hole and appeared to take strike three, but plate umpire Laz Diaz called Iwakuma's pitch a ball to give Raburn new life.
He made the most of it, connecting for his fifth homer to make it 3-2. Gomes followed with a shot onto the pedestrian porch in left.
NOTES: The Indians are 10-1 against the AL West. ... Indians RHP Brett Myers (elbow) will make his second rehab start on Wednesday at Double-A Akron. ... Indians RHP Justin Masterson was chosen AL pitcher of the week. He pitched 16 scoreless innings in wins over the Yankees and Mariners, allowing just seven hits and striking out 20. ... The Indians have won 13 of their last 15 at home.