Lackey, the team's No. 2 starter, gave up four hits with a walk and six strikeouts over 6 1/3 innings in his final tuneup for the regular season.
"He had his sharpest outing of the spring," Red Sox manager John Farrell said. "He goes into the start of the season in very good shape. He had good power and good action to his breaking ball. He also had his cutter and curveball working. It was a very productive spring from John."
Kevin Correia, the Twins' No. 2 starter, allowed one run and six hits in five innings. He walked one and struck out one.
"Correia threw the ball very well," Minnesota manager Ron Gardenhire said. "Changed speeds, used his splitter. We're throwing the ball just fine. We're not swinging, not getting too much offensively. Got to keep swinging. Got a few guys struggling right now, and we've got to get them swinging. Like to see a few hits before we start."
Middlebrooks went 2 for 3 with a double and a triple. He drove in the go-ahead run with a double in the seventh and is batting .362 this spring (17 for 47).
Aaron Hicks had two hits for the Twins, driving in their only run with a seventh-inning double. He is hitting .340 this spring (16 for 47).
Red Sox designated hitter David Ortiz went 0 for 2 with a strikeout, dropping his average to .054 (2 for 37) with 13 strikeouts.
Twins: Correia was satisfied with his final outing before facing the Chicago White Sox in his first regular-season start. In four games and 17 innings this spring, he gave up nine earned runs on 19 hits and two walks with three strikeouts.
"I was able to get six innings in my start before this, so I wasn't really pressed to go deep into the game," Correia said. "I just wanted to get a decent amount of pitches. We've got an extra day (Tuesday) after the start of the season. I just wanted to get through that last start healthy and happy."
Red Sox: Lackey threw 18 2/3 innings in four outings this spring. He gave up 13 runs on 24 hits and three walks with 17 strikeouts.
"I felt good," Lackey said. "I tried to treat this one as a real one with it being a night game. I am ready to get things started.
"Today was the first time I really jumped on it and saw where I was at. I'm healthy going into the season."
Red Sox: Left-hander Craig Breslow pitched one inning in a minor league game. Breslow, who has been brought along slowly this spring because of last season's workload, has yet to appear in a major league game. He was placed on the 15-day disabled list, retroactive to March 21, with a mild left shoulder strain.
Right-hander Steven Wright was also placed on the 15-day DL, retroactive to March 21, as he recovers from sports hernia surgery in January.
SIZING HIM UP
Red Sox center fielder Grady Sizemore, trying a comeback after injuries sidelined him for more than two years, went 2 for 3 with a walk. He is batting .333 this spring (13 for 39). Sizemore is in competition for the starting job in center. Farrell said he would that announcement Friday.
Twins designated hitter Josh Willingham went 0 for 3 with a walk and three strikeouts. He is batting .051 (2 for 39) with 13 strikeouts.
"He's fighting it right now," Gardenhire said. "I could see tonight he's a little flustered out there. He knows we're fixing to start this thing and he wants to have a better feel. We'll see what we can do here in the next couple of days to get him some confidence. He's a veteran. He should be able to handle it, but right now I can see he's not handling it very well. But he ain't the only one."
Minnesota made a series of roster moves and now has 26 players in camp. Left-hander Scott Diamond and outfielder Chris Parmelee cleared waivers and were sent outright to Triple-A Rochester. Diamond is going to take 24 hours to decide if he will try to seek a major league job or stay in the Twins organization. Outfielder Alex Pressley was claimed off waivers by Houston. The Twins now have 36 players on their 40-man roster.