ANAHEIM, Calif. (AP) — Kole Calhoun and Los Angeles Angels manager Mike Scioscia were surprised to find out just how long the right fielder's hitless streak really was, considering how good a second half of the season he's had.

On Sunday, Calhoun broke out of his 0-for-25 slump in a big way.

Calhoun hit a tiebreaking home run and Justin Upton homered in his third straight game as the Angels avoided a four-game sweep with a 4-3 victory over the Seattle Mariners.

"There were some good swings in there. You definitely feel it," Calhoun said of the hitless streak. "If you put a good swing on the ball you definitely feel like it should be a hit but sometimes it's not and that's just the game."

Calhoun's solo drive with two out in the seventh inning off reliever Nick Vincent (3-4) was his 19th home run.

"I didn't even realize it was (25) to be honest with you," Scioscia said. "He's been hitting the ball hard since he came back. Little surprised to hear it was 0-for-25. It was a good time for it and it was a big hit."

Calhoun also had a stint on the disabled list with a right oblique strain in June, but after a slow start to the season, he turned things around.

Upton extended his home run streak with a three-run shot in the third, giving the Angels a 3-1 lead. Upton has hit four home runs in his last three games. The homer was Upton's 30th of the season and marked his third consecutive season of at least 30 home runs.

Shohei Ohtani appeared to be limping as he jogged off the field in the eighth inning after he slid awkwardly into second base and was caught stealing.

"He tweaked his ankle a little bit, but you know I don't think there will be any issues with it," Scioscia said. "He slid a bit late and awkward. He'll be fine for Tuesday."

Taylor Cole (2-2) got the win, and Ty Buttrey struck out the side in the ninth inning to earn his third save. The rookie is making a strong case to pitch in the back end of the bullpen next season.

"That was awesome, punching out the side in the ninth," Calhoun said. "He's been huge for us. Going forward, he seems like he's going to be a really, really big piece."

Seattle's Daniel Vogelbach hit a first-pitch, two-run homer off starter Jaime Barria to tie the game at 3-all in the fourth inning.

Barria allowed three runs on six hits in five innings. He was not involved in the decision.

Starter Marco Gonzales, who was 5-0 in his five previous starts against the Angels this season, was not involved in the decision, either. Gonzales allowed three runs on six hits in five innings. He struck out six and walked two.

"Marco wasn't quite as sharp as he was last time out," Mariners manager Scott Servais said. "You've got to give him a ton of credit. He gutted it out and got through the five innings and gave us a chance in a tie ballgame. In the starts he makes down the stretch, we're not going to overextend him, but I think it's important he continues to pitch and finishes the season strong."

Second baseman David Fletcher left the game with a left hamstring strain in the first inning. He hit a double to left and just before he got to first, he did a stutter step and appeared to suffer the injury before he got to the bag. He jogged to second base. Manager Mike Scioscia and a trainer went to check on him, and he was taken out of the game after a quick conversation.

"He'll be evaluated (Monday)," Scioscia said. "Naturally, any time you tweak a hamstring with two weeks to go in the season it's not good."

Fletcher said he will not go on the team's road trip to Oakland and Houston. He's not sure about his status for the remainder of the season.

The Angels Mike Trout was given a rare day off Sunday.

Mitch Haniger hit a run-scoring double and was 2-for-4 for Seattle.

HELPING HAND

Hailey Dawson, an 8-year-old from Las Vegas, threw out the ceremonial first pitch with her robotic hand. She had the rare opportunity to have Trout catch for her because he wasn't in the lineup Sunday. She dabbed after Trout caught her pitch, then he gave her a hug. Dawson completed a ceremonial first pitch at all 30 MLB stadiums this season, and her ceremonial pitch at Angel Stadium was the final one.

TRAINER'S ROOM

Mariners: LHP James Paxton (pneumonia) was to play long toss Sunday in Seattle, and if all goes well he's expected to join the team in Houston on Monday. ... RHP Felix Hernandez (hamstring) is still in Seattle, but is expected to join the team on the road trip.

Angels: LHP Tyler Skaggs (left adductor strain) was scheduled to throw in the bullpen on Sunday in an attempt to start again before the regular season ends Sept. 30.

UP NEXT

Mariners: LHP Wade LeBlanc (8-4, 3.56) will start Monday in Houston. The Mariners are 15-9 when he starts, but he's 1-1 with a 6.32 ERA in nine career appearances against the Astros.

Angels: RHP Felix Pena (3-4, 3.75) will start Tuesday in Oakland. Pena threw six scoreless innings to earn a win against Texas. He is 0-0 with a 5.40 ERA in two career games (one start) against Oakland.

More From 1460 ESPN