TORONTO -- David Price pitched seven scoreless innings to get the win.
Roberto Osuna picked up the save even though he allowed a solo home run.
"He's been so good lately, for a couple of months," Blue Jays manager John Gibbons said of his top left-handed reliever. "If this all turns out right, we could look back on that and say it was the key."
"For me, they were my three biggest outs," Cecil said.
By winning the opener of the three-game series, the Blue Jays (86-64) increased their lead over the second-place Yankees (82-67) in the American League East to 3 1/2 games.
Price (17-5) allowed two hits, walked one and struck out six to win his fourth straight start and improve his record to 8-1 since the left-hander joined Toronto in a trade with the Detroit Tigers on July 30.
He has faced the Yankees four times in his 10 starts with the Blue Jays and won three of them. "He locates extremely well and I thought he used his cutter and his sinker extremely well tonight," Yankees manager Joe Girardi said of Price. "He's tough, and we know he's tough."
Price also praised Cecil. "That was very cool," Price said. "He did a great job, that's some of the biggest outs he's recorded since he's been in the big leagues. So good for him."
Osuna, a right-hander, picked up his 17th save of the season despite allowing first baseman Greg Bird's ninth home run of the season with two out in the ninth.
Yankees right-hander Adam Warren (6-7) allowed five hits, one walk and three runs over 3 1/3 innings. He struck out five.
"They made him work really hard and he was behind in some counts in that first inning," Girardi said. "After that he was OK."
The Blue Jays took a 3-0 lead in the first inning.
Left fielder Ben Revere led off with a single, and third baseman Josh Donaldson was hit by a pitch. Right fielder Jose Bautista grounded an RBI single up the middle.
The runners advanced to second and third on a wild pitch, and designated hitter Edwin Encarnacion grounded out to shortstop to score the second run. First baseman Justin Smoak doubled to right to give Toronto a three-run lead.
"I felt like maybe I was trying to do too much in the first," Warren said. "I wasn't really pitching to my strengths. It just took a while for me to get into a rhythm. ... Maybe a little bit too amped up or something. I was trying to make the best pitch in the world instead of trusting my stuff."
The Yankees loaded the bases with one out in the third when second baseman Dustin Ackley reached first base on an error by second baseman Cliff Pennington, center fielder Jacoby Ellsbury singled and left fielder Brett Gardner walked.
The Blue Jays added to the lead in the seventh when they loaded the bases with no outs.
Donaldson led off with a walk against right-hander Branden Pinder, and Bautista doubled. Encarnacion was intentionally walked.
Right-hander Aaron Sanchez replaced Price in the eighth inning. He allowed a walk to shortstop Didi Gregorius and a single to Ackley, leaving runners at the corners for left-hander Brett Cecil.
Ellsbury greeted Cecil with an RBI single. Left fielder Brett Gardner was called out on a third strike, which he protested, and Rodriguez and McCann each struck out swinging.
"We were in a jam, it was still a fairly close game, two guys on," Gibbons said. "You can't give him enough credit. He's one of the better relievers in baseball. He was an All-Star two years ago, there's a reason."
"Three tough hitters," Cecil said. "Just trying to make my pitches. Trying to get ahead, get to the curveball."
Price now is 5-0 after a Blue Jays' loss.
"Trades don't always work out right this one has worked out right," Gibbons said.
NOTES: Yankees RHP Nathan Eovaldi still has inflammation in his right elbow, making his return for the regular season more unlikely. He must wait another week before throwing. ... Yankees DH Alex Rodriguez returned to the lineup Monday after missing three starts in the interleague series against the Mets at Citi Field because the DH is not used in National League parks. ... Toronto LHP Mark Buehrle is 14 2/3 innings short of reaching 200 innings pitched for the 15th straight season with two scheduled starts remaining in the regular season. Manager John Gibbons suggested Monday that Buehrle could also start the final game of the season if he needs it to reach the 200-inning plateau, depending on the Blue Jays' situation in the standings. ... Yankees RHP Luis Severino (4-3, 3.12 ERA) will start Tuesday against Blue Jays RHP Marco Estrada (13-8, 3.14).