BOSTON -- At 40 years old, playing in his final season and never blessed with great speed, David Ortiz isn't a strong bet to come as close to his first career cycle as he did Sunday at Fenway Park.

Batting in the eighth inning of Boston's 5-2 victory over the Cleveland Indians, the Red Sox DH, needing a triple for the cycle, drove a ball deep into the triangle in right-center. It had triple written all over it -- even for Ortiz.

But the ball took a strange right-hand turn and bounced into the bleachers for his second ground rule double of the four-hit,three-RBI game.

"I wasn't aware of it until I was going around first base and then I saw everybody going crazy, and then I kinda realized that I could get a triple for the cycle," Ortiz said.

"I was hoping a fan could slap it back in play," teammate Jackie Bradley Jr. added. "I think I heard him mutter it's going to be hard to go three with a flat tire."

It was just the previous weekend that Ortiz, now batting .329 with 11 homers and 37 RBIs, hit his 19th career triple and his first since 2013. This likely would have been another.

"Sometimes things happen for a reason," said Ortiz, who also walked in the game. "The way things are going right now, you guys know it's not easy for a guy like me to hit a triple."

Told he might have to stick around another year to get that cycle, Ortiz said, "I don't think it's gonna happen."

Ortiz stole the spotlight -- again -- on the day Rick Porcello became Boston's first seven-game winner and Bradley extended his hitting streak to 27 games.

"Wish he would have retired last year," said Indians -- and former Red Sox -- manager Terry Francona. "He's kind of on a different level right now. It looks like he's playing softball.

"He doesn't swing at balls and the ones he swings it -- even if he fouls it off -- you kind of take a deep breath."

After going 0-for-4 with two strikeouts in Friday night's opener, Ortiz went 6-for-10 with three doubles and a homer as the Indians lost two straight after a five-game winning streak.

Porcello (7-2) overcame throwing 56 pitches in the first two innings and went 5 2/3 as the Red Sox won their second straight after losing the series opener to the Indians. Five relievers finished up, with Craig Kimbrel notching his 12th save in 13 chances with a perfect ninth inning.

"I think I just calmed down (after the second)," Porcello said. "Little excited first couple innings -- wasn't necessarily focusing enough on location."

Bradley walked his first time up, then struck out before singling in the fifth to extend the majors' longest 2017 streak. It was his third straight one-hit game but he walked six times in the weekend series and is batting .408 during the streak.

Boston's Xander Bogaerts, who came in leading the American League with 60 hits and tied for the lead in multi-hit games with 18, had three singles and an RBI, and Mookie Betts added two hits.

The Red Sox (27-17) won for the 11th time in their last 13 games at home.

Jason Kipnis singled home both Cleveland runs, tying the game 2-2 in the second inning, while Juan Uribe had a pair of doubles.

The Indians dropped to 22-19.

The Red Sox chased Cleveland starter Danny Salazar (4-3) in 4 1/3 innings, his shortest outing of the season -- an effort that started with a 40-pitch, two-run first inning in which he was hit on the left calf with a Hanley Ramirez line-drive. He had been 2-0 with a 1.26 career starts against Boston.

Ortiz got him for a single, double and homer.

"I was wondering why is he retiring?" the pitcher asked. "I know he has way more to give."

Bradley's hitting streak is tied for the sixth-longest in club history. The Ortiz homer gave the Red Sox at least one in each of their last 22 games, extending a club record. According to the Elias Sports Bureau, the 2002 Texas Rangers have the record of 27 straight games with at least one homer.

Cleveland's Mike Napoli, a member of the Red Sox's 2013 championship team, finished off a nightmarish first return to Fenway Park as a visitor by striking out his first three times up, giving him eight in a row, and lining out to left. He was 0-for-13 with nine strikeouts in the three games.

Kimbrel has recorded 10 straight scoreless appearances, hitters going 1-for-29 with 14 strikeouts against him in those 10 games.

NOTES: Red Sox C Ryan Hanigan, who suffered a left hand contusion when hit by a pitch on Saturday, was unavailable Sunday and is day-to-day. ... The Indians recalled RHP Austin Adams from Triple-A Columbus and optioned LHP Kyle Crockett to the same team. Adams worked the eighth inning Sunday. ... Boston LHP Eduardo Rodriguez, who hasn't pitched in the major leagues this year because of a knee injury, will wear a new brace when he makes his next rehab start on Tuesday night. ... The Indians will recall RHP Cody Anderson from Columbus to start the second game of Monday's doubleheader against the White Sox in Chicago. Both Anderson and Game 1 starter RHP Michael Clevinger seek their first wins of the season, Clevinger the first of his career in just his second start. ... The Red Sox are off Monday before the Colorado Rockies come in for three games starting Tuesday.