"The curveball was as good or better than it's been so far this year," Happ said. "That was a big pitch tonight."
Reyes and Navarro both connected in the sixth inning, as the Blue Jays rebounded from Monday's 14-1 defeat to snap Boston's winning streak at five games.
"After last night, that demolition, we knew we had to come through today," Navarro said. "We were expecting Happ to give us a shot and he did a great job."
Boston set season-highs in runs, hits (18) and homers (4) on Monday, but couldn't duplicate that output against Happ.
"There's no bank that we can take runs and put them in and take a loan out the next day, unfortunately," Red Sox manager John Farrell said. "It would have been nice to be able to do that today."
Reyes and Melky Cabrera both had three hits and two RBIs. Cabrera has 14 multi-hit games in his past 30. David Ortiz hit a solo homer in the eighth -- his third homer in two games and the 36th of his career at Rogers Centre, which ties Alex Rodriguez for the most by a visiting player.
More from ESPN.com
Jake Peavy's frustration is mounting as he finds the win column elusive, writes Gordon Edes. Story
"He's very comfortable hitting in this ballpark," Farrell said.
Happ (8-5) allowed seven hits in six innings, walked one and struck out four to win for the first time since beating the Chicago White Sox on June 26.
"It might have been his best outing of the year," Blue Jays manager John Gibbons said.
The Red Sox have hit at least one home run in seven straight games.
Toronto opened the scoring in the third on a Cabrera two-out single that struck Red Sox right-hander Jake Peavy in the leg and rolled into foul territory as Anthony Gose scored.
Reyes led off the sixth with his eighth home run and Cabrera followed with a double. One out later, Navarro made it 4-0 with a drive into the bullpen in right.
Peavy (1-9) left in the seventh after infield hits by Gose and Reyes. Cabrera greeted Burke Badenhop with another RBI single that struck the pitcher.
Peavy lost for the ninth time in 15 starts and has not won since beating Toronto on April 25. He allowed five runs and eight hits in 6 1/3 innings, walked three and struck out seven. Peavy has received two runs or fewer of support in each of his past eight starts.
"Run support or no run support, it's not fun to lose," Peavy said.
Toronto made it 7-1 in the eighth by scoring twice against Felix Doubront. Ryan Goins hit an RBI single and scored on a double by Reyes.
Boston had chances, but went 1-for-9 with men in scoring position. The Red Sox loaded the bases with two outs in the fourth, but Drew flied out.
Boston's Dustin Pedroia went 0-for-4 with a walk and is hitless in 17 at-bats.
Toronto selected top prospect RHP Aaron Sanchez from Triple-A Buffalo. The Blue Jays recalled Goins and selected RHP Esmil Rogers from Triple-A. To make room, Toronto optioned C Erik Kratz and OF Darin Mastroianni to Triple-A and designated LHP Brad Mills for assignment. ... Canadian tennis star Milos Raonic served the first pitch with a racket, skipping it past Blue Jays pitcher Mark Buehrle to the backstop. ... Boston RHP Clay Buchholz faces Blue Jays RHP R.A. Dickey on Wednesday.
Copyright by STATS LLC and The Associated Press
TORONTO, CANADA - JULY 22: Munenori Kawasaki #66 of the Toronto Blue Jays chases a foul pop up in the second...
29,269 (59.4% full) - % is based on regular season capacity
79 degrees, clear
Home Plate - Paul Nauert, First Base - Gabe Morales, Second Base - Angel Hernandez, Third Base - Larry Vanover
Jake Peavy has allowed a .184 ISO against his cutter and sinker this season, which is 51 points above the average among pitchers who have thrown at least 200 cutters and sinkers. Jose Reyes has a .308 ISO against cutters and sinkers this season, which is 157 points above the league average among qualified hitters.