Wells and Glaus hit back-to-back homers in the first off Beckett (7-2), who had won his previous four starts. They got Beckett again with solo homers, Wells in the third and Glaus, his 17th, in the fifth. It was the fourth multihomer game of the season for both.
Wells is 6-for-12 with four home runs in his career against Beckett.
"I'd rather miss him one of these times, to be honest with you. It's not a fun at-bat," Wells said. "I'm going up there swinging early and often just to give myself a chance. He's supplying all the power. I just have to figure out how to put the bat on it."
Wells added a solo shot -- his 15th -- off David Riske in the eighth. He went 3-for-4 with four RBI.
Eight of his home runs have come against Boston.
"Hopefully, I can continue to close my eyes and swing as hard as I can," Wells said.
Beckett said anybody could have homered off him on the pitches he threw to Wells.
"They were right down the middle. You guys could have hit either one of those balls out," Beckett to a pack of writers. "But it's not a fluke he hit three home runs. He's a pretty good player."
"Vernon is a special player," Toronto manager John Gibbons said. "Offensively and defensively he's really coming into his own. He's still a young man at this level and he's had big years ever since he's been here.
"That's no easy feat. Beckett is tough and Glaus got him twice, too," he said.
Toronto improved to 7-3 against Boston this season, all the losses coming when the recently demoted Josh Towers pitched.
Gustavo Chacin (6-1), who came off the 15-day disabled list earlier Tuesday, allowed two runs and four hits and walked four in five innings. Chacin made his first start since May 10, when he strained his elbow and forearm against Oakland.
B.J. Ryan pitched 1 1/3 innings for his 12th save in 13 chances.
Beckett had one of his worst starts of the season, allowing seven runs and a season-high 10 hits in 4 2/3 innings.
"You have to execute a high number of pitches, especially when you are going up against a lineup like this or any lineup in the American League, for that matter," Beckett said.
The Red Sox got within 7-5 in the sixth on a solo homer by Trot Nixon, a run-scoring wild pitch by Scott Downs and a bases-loaded walk to Manny Ramirez. Jason Frasor relieved and got Jason Varitek to ground out to first with the bases loaded to end the threat.
Boston put two runners on in the eighth, but Justin Speier struck out Ramirez for the second out before Ryan struck out Varitek.
Gibbons said he made a mistake when he didn't replace Speier with Ryan to face Varitek in the eighth inning on Monday night. Varitek hit a tying, three-run homer off Speier but Toronto won on a run in the bottom of the inning.
After Wells hit a two-run homer in the first, Glaus hit a solo shot to give Toronto a 2-1 lead. It was the fifth time Toronto hit back-to-back homers this season.
Wells homered in the third and Edgardo Alfonzo hit an RBI grounder in the fourth.
Glaus led off the fifth with a homer and Aaron Hill added an RBI single in the inning to give Toronto a 7-2 lead.
Toronto catcher Bengie Molina left in the fifth after getting hit on the right hand by a pitch. ... Right-hander David Pauley will start for Boston on Wednesday. Pauley went 2-3 with a 2.39 ERA in 10 starts with Double-A Portland. "It's a pretty significant jump. If I just stick to how I know how to pitch I think I will be all right," Pauley said.