Buchholz (5-2) won for the first time in four starts, giving up two runs, both on solo homers, and six hits in a season-high eight innings. He walked two and struck out seven, also a season-high.
"He's been building to that, that's for sure," Red Sox manager Bobby Valentine said. "Clay Buchholz was terrific tonight. Extra on his fastball, terrific changeup, changed his angle a little on his breaking ball, threw strikes, very competitive. I like that, he likes that and I expect we can get more of the same."
Buchholz is the first opposing pitcher to win six straight road starts against the Blue Jays. He has not lost in Toronto since July 17, 2009, and is 6-2 with a 1.72 ERA in eight career starts at Rogers Centre.
Buchholz said he takes no pleasure in facing Toronto, calling them "dangerous," and credited his confidence for all his strong showings in Canada.
"Whenever I go out there and have a little bit of confidence running through the first two or three innings, it just builds to make you want to go back out there and make good pitches," Buchholz said.
Valentine said an improved changeup, something that came together for Buchholz three starts ago, has helped bring about the right-hander's change in fortune.
|More on Red Sox-Blue Jays|
|More MLB coverage|
"I think it's made all the difference in the world," Valentine said.
Buchholz found the confidence he needed early in this one. After two straight errors put Blue Jays at first and second in the first, Buchholz battled back from 3-0 down to strike out Jose Bautista.
"Tough mental at-bat there," said Buchholz, who followed by getting Edwin Encarnacion to ground into a double play.
The victory moved the Red Sox level with the Blue Jays at 27-25, tied for fourth in the AL East and three games behind first-place Tampa Bay.
"The last few weeks we've really been picking it up and kind of grinding, playing the way we should be playing, and Buch set the tone," Boston catcher Jarrod Saltalamacchia said.
"Adrian needed a night like this, where he's able to drive in the runs and get three hits, and we needed him to do that," Valentine said.
Valentine said Nava, who was promoted from the minor leagues on May 10, "looks like as good a hitter as you want."
"Every at bat he takes pitches that are balls and takes full swings at pitches that are strikes," Valentine said. "A pretty good combination."
Scott Atchison finished in the ninth for the Red Sox.
For the second straight game, the Blue Jays saw their starting pitcher hit on the lower leg by a comebacker. Two days after Brandon Morrow had to be helped off the field after being struck on the right leg, Henderson Alvarez was drilled on the left shin by a one-hopper off the bat of Mike Aviles to start the fifth.
Alvarez (3-5) threw his glove down and hopped around before lying on the ground in pain. He was treated on the field and stayed in the game.
Catcher J.P. Arencibia, who was also behind the plate when Morrow was hit Wednesday, said he was thinking "Not again," when he saw Alvarez go down.
"That one hit him pretty square," Arencibia said. "You dont want to see that two games in a row, a ball back to the pitcher. Fortunately enough he was OK and was able to continue pitching."
Alvarez allowed four runs and eight hits in 6 1/3 innings, walked one and struck out two. The second-year right-hander is 0-3 with a 6.08 ERA in his past four starts, all Blue Jays losses.
Ortiz got Boston on the board with a leadoff homer to left in the second, his 13th, and the Red Sox made it 2-0 in the second when Nava doubled and scored on Gonzalez's RBI single.
Toronto cut the lead in half in the third when Yunel Escobar snapped an 0 for 11 slump with a two-out homer, his third, but Boston restored its two-run cushion on Saltalamacchia's RBI fielder's choice.
"Two out hits are a thing of beauty, it puts the other team to sleep," Valentine said.
Scott Podsednik singled home a run and scored on Nava's double before Gonzalez and Ortiz followed with RBI singles. Ortiz was thrown out at first to end the inning after taking too wide a turn on his base hit off the wall in right.
Bautista got another outfield assist in the ninth when he threw out Punto at second base.
Blue Jays rookie David Cooper hit an opposite field homer in the seventh, his first.
- Boston leads the major leagues with 207 extra base hits, including 137 doubles.
- Red Sox 2B Dustin Pedroia (right thumb) took grounders before the game but did not play, his fourth straight day out of the lineup.
- Boston INF Kevin Youkilis got the day off.
- The Blue Jays assigned Vladimir Guerrero to Triple-A Las Vegas. Guerrero, who signed a minor league contract last month, had been at Class-A Dunedin. He'll make his Las Vegas debut Saturday.
- Boston promoted Mark Prior to Triple-A Pawtucket. The former-first round pick had been at extended spring training.