New York vaulted past Boston into a half-game lead in the American League East.
Nova (15-4) allowed two first-inning runs and then settled down to give the Blue Jays only three hits over seven innings. The rookie has won eight consecutive starts.
Brett Gardner tied it with a two-run homer in the third and New York got to Brandon Morrow for what turned out to be the winning run in the fifth. Derek Jeter reached on a single with two away, Curtis Granderson walked and Cano came through with a base hit to center that brought home Jeter.
The Yankees won for the fifth time in six games, having captured two out of three against the Red Sox in a just-completed series.
Morrow (9-10) gave up three runs on four hits in six innings to suffer the loss.