Kevin Pillar reached on a fielding error by Boston's Drew Sutton, allowing Adam Loewen to cross to break a scoreless tie. Kevin Ahrens was thrown out at home on the play to end the inning.
Esmil Rogers worked a 1-2-3 ninth for the save, while Sergio Santos, who struck out the side in the top of the eighth, got the win in relief for the Blue Jays.
Aceves, who is tabbed as a long reliever and the sixth starter when needed for the Red Sox, walked two and struck out five in five innings.
Happ, who could be a long reliever in Toronto or a starter in Triple-A Buffalo, allowed two walks and recorded three strikeouts. He could be insurance in the No. 5 starter role should Ricky Romero continue to struggle.
"You can call it a chip on your shoulder or whatever, but I certainly have motivation to go out there," said Happ, who owns a 1.89 ERA in six Grapefruit League outings, including five starts. "You never lack that, but you know there's a little bit more I suppose. You always feel like you could do better, but I definitely feel good about the way it's gone. I established that I can come in and throw strikes using everything. If they wanted to see something, my guess is that might be it."
Happ was followed by Blue Jays closer Casey Janssen, who pitched in his first Grapefruit League game and logged a 1-2-3 seventh with two strikeouts. Janssen has been brought along slowly after minor shoulder surgery in the offseason.
Happ gave up a first-inning double on a popup that dropped in just behind third base. The lefty didn't allow another runner until two outs in the fourth, when he walked Ryan Lavarnway and hit Lyle Overbay with a pitch. But Happ ended the inning on Mauro Gomez's fielder's choice grounder.
Aceves survived Mark DeRosa's leadoff double, a balk and a walk in the third. DeRosa had two of the Blue Jays' four hits in the game.
Bruce Bentz hit a double to center against Happ with one out in the fifth and Xander Bogaerts followed with a walk. But Happ got a double-play grounder from Brock Holt.
Up next for the Blue Jays: The Blue Jays will face the Atlanta Braves on Saturday at Florida Auto Exchange Stadium at 1:05 p.m. ET. Brandon Morrow will start for Toronto against left-hander Sean Gilmartin. The game will broadcast free on MLB.TV and on SNET and SNET590.