BOSTON — Left fielder Eddie Rosario threw out Rafael Devers at home plate for the final out, preserving the Minnesota Twins' 2-1 victory over the Boston Red Sox on Thursday night.

Rosario delivered a strike to catcher Jason Castro as Devers attempted to score from second on a double off the Green Monster by J.D. Martinez.

Pinch-hitter Willians Astudillo drove in the go-ahead run in the seventh inning with just the second hit of the night for the Twins, who compensated by capitalizing on nine walks.

RELATED: Man who wrote iconic 'We're Gonna Win, Twins' rally song passes

Boston pitchers loaded the bases on walks twice and Astudillo made them pay the second time with a single that scored Miguel Sanó.

Minnesota took two of three in Boston and wrapped up an 8-2 road trip. The Twins extended their AL Central lead to 6 1/2 games over Cleveland and will be back home this weekend hosting the Indians for three games.

RELATED: Cruz, Sanó homer for Twins in 6-5 win at Boston

The Red Sox lost for the third time in five games, further diminishing their chances of making the postseason after winning the World Series last year.

Mookie Betts homered for the third time in two nights and added a double. He had Boston's only two hits until Xander Bogaerts singled with one out in the ninth.

Minnesota starter Martín Pérez (10-6) allowed one run and two hits in six innings. Taylor Rogers got his 24th save, thanks to Rosario's throw that was in plenty of time to get Devers.

Andrew Cashner (11-8) got two outs in the seventh but loaded the bases on three walks. Astudillo batted for Jonathan Schoop and singled to right off Matt Barnes, the only Boston pitcher not to walk a batter.

The Red Sox didn't have a hit until Betts lined a homer off the Pesky Pole in right in the fourth to put Boston up 1-0.

Minnesota tied it in the fifth when C.J. Cron grounded into a double play with the bases loaded.

Nathan Eovaldi pitched five innings for Boston, allowing one run on one hit and four walks. He struck out three. Marcus Walden worked a scoreless sixth before Cashner took over in the seventh.

Twins center fielder Jake Cave robbed Christian Vázquez of extra bases with a diving catch on a sinking drive to right-center in the seventh.

TRAINER'S ROOM

Twins: SS Jorge Polanco was out of the lineup after leaving Wednesday's game in the eighth inning with a sore knuckle on his right hand.

Red Sox: LHP David Price experienced tightness in his wrist while throwing Wednesday and will not pitch this weekend against the Yankees, manager Alex Cora said. Price just came off the injured list Sunday after missing most of August with a cyst on his left wrist.

UP NEXT

Twins: RHP Michael Pineda (11-5, 4.11 ERA) starts Friday against Cleveland RHP Adam Plutko (6-4, 4.53).

Red Sox: Had not announced a starter for Friday's opener against the Yankees and RHP Domingo Germán (17-3, 4.01).