Roberto Perez’s crawling infield single scored Francisco Lindor with the go-ahead run with two outs in the eighth inning as the Cleveland Indians snapped a season-high, four-game losing streak with a 3-1 win over the Tampa Bay Rays on Friday night.

With the bases loaded, Perez, who returned to the lineup after missing two games with a concussion, hit a slow roller off José Alvarado (0-4) that third baseman Daniel Robertson charged but couldn’t field with his bare hand.

Alvarado then walked Jake Bauers to force in Carlos Santana, giving the Indians a 3-1 lead. Alvarado, who replaced Cy Young winner Blake Snell in the seventh, walked three in the eighth.

Tampa Bay Rays' Willy Adames fields a ball hit by Cleveland Indians' Eric Haase during the fifth inning of a baseball game Friday, May 24, 2019, in Cleveland. Haase was out on the play. (AP Photo/Tony Dejak)
Tampa Bay Rays’ Willy Adames fields a ball hit by Cleveland Indians’ Eric Haase during the fifth inning of a baseball game Friday, May 24, 2019, in Cleveland. Haase was out on the play. (AP Photo/Tony Dejak)

A.J. Cole (2-1) struck out the side in the eighth and Brad Hand worked the ninth for his 13th save in 13 tries.

Cleveland starter Shane Bieber matched Snell for five innings with his second straight dominant outing by striking out 10 in five innings.

Jordan Luplow homered in the fourth off Snell for the Indians, who have been in an offensive funk for months and have been searching for something to get them going.

Cleveland Indians' Jordan Luplow watches his solo home run off Tampa Bay Rays starting pitcher Blake Snell during the fourth inning of a baseball game Friday, May 24, 2019, in Cleveland. (AP Photo/Tony Dejak)
Cleveland Indians’ Jordan Luplow watches his solo home run off Tampa Bay Rays starting pitcher Blake Snell during the fourth inning of a baseball game Friday, May 24, 2019, in Cleveland. (AP Photo/Tony Dejak)

Other than allowing Luplow’s homer, Snell had little trouble with the punchless Indians, who came in batting .222 and have been struggling to score.

The left-hander gave up just four hits in 6 2/3 innings. Snell had issues with his command while walking three, striking out seven and throwing a season-high 104 pitches before manager Kevin Cash gave the ball to Alvarado with two outs in the seventh.

Bieber, who fanned 15 in a complete-game shutout against Baltimore on Sunday, worked his way out of one-out, two-on jams in three innings. But he threw too many pitches — 111 — and manager Terry Francona was forced to lift him despite allowing just one run and four hits.

Tampa Bay Rays' Brandon Lowe, left, gets Cleveland Indians' Leonys Martin out at second base on a steal during the fifth inning of a baseball game Friday, May 24, 2019, in Cleveland. (AP Photo/Tony Dejak)
Tampa Bay Rays’ Brandon Lowe, left, gets Cleveland Indians’ Leonys Martin out at second base on a steal during the fifth inning of a baseball game Friday, May 24, 2019, in Cleveland. (AP Photo/Tony Dejak)

The Indians only had one hit before Luplow, who singled in the second, drove a high fastball out of the strike zone over the wall in right-center for his sixth homer — all against left-handers.

Before the game, Francona said he’s been impressed with Luplow, in his second stint with Cleveland.

“He’s been dangerous against left-handed pitching, which we really need, that presence,” Francona said.

Cleveland Indians starting pitcher Shane Bieber delivers during the first inning of the team's baseball game against the Tampa Bay Rays, Friday, May 24, 2019, in Cleveland. (AP Photo/Tony Dejak)
Cleveland Indians starting pitcher Shane Bieber delivers during the first inning of the team’s baseball game against the Tampa Bay Rays, Friday, May 24, 2019, in Cleveland. (AP Photo/Tony Dejak)

Bieber’s bid for a second straight shutout was over in the first when Austin Meadows doubled, moved up on a fly out and scored on Avisaíl García’s single.

TRAINER’S ROOM

Rays: 3B Robertson (allergic reaction) didn’t start after exiting Thursday in the fifth inning. He has a nut allergy and ate sweet potatoes, which contained pecan crumbles. “By the second inning, his color and skin tone changed,” Cash said. “We’ve seen it before, but not like this. He was literally rubbing his spikes on the ground, trying to itch his feet.”

Cleveland Indians' Leonys Martin catches a ball hit by Tampa Bay Rays' Avisail Garcia during the seventh inning of a baseball game, Friday, May 24, 2019, in Cleveland. Garcia was out on the play. (AP Photo/Tony Dejak)
Cleveland Indians’ Leonys Martin catches a ball hit by Tampa Bay Rays’ Avisail Garcia during the seventh inning of a baseball game, Friday, May 24, 2019, in Cleveland. Garcia was out on the play. (AP Photo/Tony Dejak)

Indians: RHP Mike Clevinger threw a 35-pitch bullpen session and will now head to the team’s year-round training complex in Arizona to continue to rehab from an upper back strain. Clevinger’s quick recovery has been a huge plus for the Indians, who feared he might be out several more months. … Rookie OF Oscar Mercado was understandably “sore” following his scary collision in Thursday night’s game with center fielder Leonys Martin. Mercado sustained a bruised right hip.

UP NEXT

Rays: RHP Charlie Morton (4-0, 2.65 ERA) has a 17-start unbeaten streak, going 7-0 with a 3.21 ERA since last August 17. It is the second-longest active run behind Clayton Kershaw of the Dodgers, who is 10-0 over his last 19 starts.

Tampa Bay Rays' Avisail Garcia watches his RBI single off Cleveland Indians starting pitcher Shane Bieber during the first inning of a baseball game Friday, May 24, 2019, in Cleveland. Austin Meadows scored on the play. (AP Photo/Tony Dejak)
Tampa Bay Rays’ Avisail Garcia watches his RBI single off Cleveland Indians starting pitcher Shane Bieber during the first inning of a baseball game Friday, May 24, 2019, in Cleveland. Austin Meadows scored on the play. (AP Photo/Tony Dejak)

Indians: RHP Carlos Carrasco (4-4, 4.30 ERA) lost both starts against Tampa Bay last season. He leads the AL in strikeout-to-walk ratio (7.33).

___

Tampa Bay Rays starting pitcher Blake Snell delivers in the first inning of the team's baseball game against the Cleveland Indians, Friday, May 24, 2019, in Cleveland. (AP Photo/Tony Dejak)
Tampa Bay Rays starting pitcher Blake Snell delivers in the first inning of the team’s baseball game against the Cleveland Indians, Friday, May 24, 2019, in Cleveland. (AP Photo/Tony Dejak)
Tampa Bay Rays' Avisail Garcia flips his bat after striking out during the third inning of the team's baseball game against the Cleveland Indians, Friday, May 24, 2019, in Cleveland. (AP Photo/Tony Dejak)
Tampa Bay Rays’ Avisail Garcia flips his bat after striking out during the third inning of the team’s baseball game against the Cleveland Indians, Friday, May 24, 2019, in Cleveland. (AP Photo/Tony Dejak)
Cleveland Indians' Jason Kipnis heads to first with a single off Tampa Bay Rays starting pitcher Blake Snell durimg the sixth inning of a baseball game Friday, May 24, 2019, in Cleveland. (AP Photo/Tony Dejak)
Cleveland Indians’ Jason Kipnis heads to first with a single off Tampa Bay Rays starting pitcher Blake Snell durimg the sixth inning of a baseball game Friday, May 24, 2019, in Cleveland. (AP Photo/Tony Dejak)
Cleveland Indians' Jordan Luplow, right, steals second base as Tampa Bay Rays' Brandon Lowe is late with the tag during the second inning of a baseball game Friday, May 24, 2019, in Cleveland. (AP Photo/Tony Dejak)
Cleveland Indians’ Jordan Luplow, right, steals second base as Tampa Bay Rays’ Brandon Lowe is late with the tag during the second inning of a baseball game Friday, May 24, 2019, in Cleveland. (AP Photo/Tony Dejak)