"I felt the best I have all year," Hutchison said.
Mark Teixeira's fourth-inning double was the only hit allowed by the Blue Jays. Hutchison (9-11) struck out nine and walked two.
"It's tough to get better than he was today," Toronto manager John Gibbons said.
In four previous starts against New York this season, Hutchison had posted a 7.08 ERA while allowing 24 hits, including three homers, in 20 1/3 innings.
"He threw the ball really well," Yankees manager Joe Girardi said. "He's got some pretty good stuff and today we weren't able to figure him out."
Yankees catcher Brian McCann said Hutchison's location was vastly better than in previous meetings.
"He put the ball wherever he wanted," McCann said.
Sanchez retired all six batters he faced for his first major league save as the Blue Jays (68-67) improved to 8-17 in August. They avoided falling below .500 for the first time since May 14, when they were 20-21.
"It was a big win for us today," Sanchez said. "Hutch threw one heck of a game and I just happened to be on the end of it."
Bautista hit a two-out, two-run homer off Michael Pineda (3-3) in the first. It's the second time in his career Bautista has connected in four consecutive games. He also did it from Sept. 28 to Oct. 2, 2009.
The homer was Bautista's 100th at Rogers Centre, making him the fourth Blue Jays player to reach the century mark. Carlos Delgado (175), Vernon Wells (124) and Joe Carter (121) are the others.
Hutchison retired his first 11 batters before hitting Carlos Beltran with a pitch in the fourth. Teixeira doubled before McCann was also hit by a pitch to load the bases for Martin Prado, who flied out.
"Good swing by Prado," Girardi said. "He just missed it."
Pineda gave up a season-high seven hits in six innings, losing for the first time since April 23 at Boston. He walked none and struck out three.
CATCH OF THE DAY
Blue Jays OF Kevin Pillar, who made a sensational, diving catch in center to retire McCann in the fourth inning Friday, opened Saturday's game with an almost identical catch on Brett Gardner's sinking liner.
CABRERA COMES THROUGH
Batting third for the 10th time this season, Melky Cabrera snapped an 0-for-13 slump with a single in the sixth. Cabrera came in having failed to get a hit in back-to-back games for just the third time this season. He also went hitless June 14 and 15, and June 28 and 29. Cabrera's 168 hits this season are the most by a Toronto player since 2009, when Aaron Hill had 195.
Yankees: CF Jacoby Ellsbury (sore left ankle) was held out of the lineup. Ellsbury was injured when he slid into Toronto catcher Dioner Navarro in the ninth inning Friday. Optimistic about Ellsbury's status before the game, Girardi sounded markedly different afterward. "I'd be really shocked if he played tomorrow," Girardi said, suggesting a longer absence was a possibility.
Blue Jays: RHP Brandon Morrow's rehab appearance at Triple-A Buffalo on Saturday night will make him the 73rd player used by the Bisons this season, two shy of the International League record set by Norfolk in 2012.
Yankees RHP Brandon McCarthy (5-3) faces LHP J.A. Happ (8-8) in Sunday's series finale. McCarthy has a 1.88 ERA in seven daytime starts this season, compared to 5.03 in 20 night starts. Happ is 0-3 with a 4.04 ERA in his past six starts.
Copyright by STATS LLC and The Associated Press
TORONTO, CANADA - AUGUST 30: Kevin Pillar #11 of the Toronto Blue Jays makes a diving catch in the first inning...