DETROIT — Clay Buchholz pitched well enough to give the road-weary Red Sox a chance to win.

The Boston bullpen couldn’t finish the job.

Brad Ziegler walked Andrew Romine with the bases loaded to cap a three-run eighth inning for Detroit, and the Tigers held on for a 4-3 win Thursday, snapping Boston’s six-game winning streak.

The Red Sox won at Baltimore on Wednesday night, and Manager John Farrell said they arrived at their hotel around 4 a.m. Thursday – about nine hours before the first pitch. David Ortiz and Dustin Pedroia were out of the starting lineup.

“I thought we brought great energy considering the circumstances coming into this ballgame,” Farrell said. “We fought hard.”

Boston played in its fourth city in five days. The team was home at Fenway Park on Sunday, had a makeup game Monday in Cleveland, then went to a two-game series in Baltimore.

Buchholz and Detroit’s Matt Boyd each allowed a run in six innings, leaving the game in the hands of the relievers.

“I felt good. I went out of the stretch the whole start, less moving parts for me, just things I’ve been working on,” Buchholz said. “I feel like that keeps me over the rubber a little bit longer and enables me to command a little bit better.”

The Red Sox scored twice in the eighth to go up 3-1, but the Tigers rallied. Miguel Cabrera’s run-scoring single made it 3-2 and gave him 1,000 RBI for his Detroit tenure – and 1,523 overall in a career that started in 2003 with the Marlins.

“Playing eight, nine years here, it made me proud, because you don’t see that too often right now because all the trades, the situation around baseball,” Cabrera said. “It’s hard to play with one team for a long time.”

Ziegler came on and allowed a tying single to Victor Martinez. J.D. Martinez walked to load the bases with nobody out, but a grounder and a strikeout left the bases still loaded.

Romine then drew a walk to put Detroit ahead.

Boston threatened in the ninth against Francisco Rodriguez. Ortiz’s pinch single put runners on first and second with one out, and Xander Bogaerts moved them over with a groundout. Mookie Betts hit a line drive, but second baseman Ian Kinsler needed to move only slightly to his right to make the catch for the final out.

Rodriguez got his 34th save in 37 chances.

Justin Wilson (3-4) won in relief. Junichi Tazawa (2-2) failed to retire a batter in the eighth.

Sandy Leon homered for Boston.

Jarrod Saltalamacchia hit a sacrifice fly for Detroit in the second, and Leon tied it in the fourth with a leadoff homer.

Hanley Ramirez hit an RBI single for Boston in the eighth, and Betts scored on a wild pitch.

Detroit’s first run came after a crucial reversal in the second. Casey McGehee of the Tigers was initially called out when center fielder Jackie Bradley Jr. made a diving attempt on his flyball in right-center. Replays clearly showed that Bradley hadn’t caught the ball, and after a review, umpires awarded McGehee first base and put J.D. Martinez on third.

Boston third base coach Brian Butterfield was then ejected while Saltalamacchia batted.

“I think Mr. Butterfield was arguing out on balls and strikes with (plate umpire Scott Barry), and he warned him a couple times and he didn’t pay any attention to the warnings,” said crew chief Jerry Layne, who was umpiring first.