After fouling off a pair of curveballs, Justin Smoak figured he'd get a fastball from David Robertson.
Smoak was right.
The switch-hitter smacked a two-run homer in the seventh inning and a go-ahead grand slam in the eighth to rally the Toronto Blue Jays past the New York Yankees 7-4 on Sunday.
Smoak connected against reliever Tommy Kahnle in the seventh, then brought the crowd of 29,091 to its feet with his second career slam, a drive off Robertson (0-1).
"He's one of the best in the game so you know it's going to be a tough at-bat," Smoak said of his nine-pitch encounter with Robertson. "I just tried to battle and battle and battle."
Smoak went 3 for 4 with a walk and six RBIs in his seventh career multihomer game as Toronto gained a series split, winning the final two games.
"You can't do any better than he did today," manager John Gibbons said.
Robertson was left frustrated at his failure to finish off Smoak.
"I threw everything I had at him," Robertson said. "He just won today."
Toronto has hit at least one home run in each of its first four games. It's the first time the Blue Jays have done that since 2011, when they homered in five straight to begin the season.
With Toronto trailing 4-3, Russell Martin hit a leadoff single against Robertson and went to third on a one-out double by Aledmys Diaz. One out later, New York chose to intentionally walk Josh Donaldson to load the bases for Smoak, who worked the count full before his shot to center field.
"I'm glad I was thinking the way I was thinking," Smoak said of his decision to look for the fastball.
Smoak's other slam also came against the Yankees. In 2015, he went deep off Ivan Nova to become the first Blue Jays player to hit a grand slam in the Bronx - Toronto joined the majors in 1977.
Tyler Clippard (1-0) pitched a scoreless inning and Seung Hwan Oh finished for his first save.
Toronto's comeback denied New York its first series victory north of the border since August 2015. The Yankees have lost six of their past eight series in Toronto, splitting the other two.
Brandon Drury hit a two-run homer for the Yankees, and Giancarlo Stanton walked three times in his first career start in left field.
Drury connected off right-hander Marcus Stroman, who allowed four runs and three hits in five innings. Stroman, limited to two starts in spring training because of a sore shoulder, walked three and struck out eight.
Yankees slugger Aaron Judge threw out Martin at home plate in the second as he tried to score from second base on Gift Ngoepe's ground single to right field.
"You've got to do something when you're not hitting," joked Judge, who went 1 for 3 with two walks, raising his batting average to .200.
Devon Travis followed with an RBI single as the Blue Jays opened the scoring for the second straight game.
New York answered with four two-out runs in the third. Stanton walked and scored on Didi Gregorius' double. Neil Walker had an RBI single and Drury followed with a drive to left, his first.
"Really good at-bats in that inning," Yankees manager Aaron Boone said. "They held us down after that."
Yankees right-hander Sonny Gray allowed one run and seven hits in four-plus innings. He walked three and struck out eight, including four straight during one stretch.
"It was a grind for Sonny today," Boone said.
LONG ARM OF THE JUDGE
"I love getting throws from Judge because there's a lot of true backspin to the ball so it's easier to pick them," Yankees catcher Austin Romine said. "They're not having two-seamer tail or something like that, hitting the ground and darting a different way. He really gets behind the ball and gives you a pretty good chance to pick the ball. It was a great throw.
ON THE LEVEL
Toronto reached .500 for the first time since May 29, 2016, when it was 26-26.
Yankees: RHP Adam Warren (right ankle) played catch before the game. Warren left Saturday's game after he was struck by a comebacker. Boone said Warren's condition was better than expected. "We're pretty optimistic about him," Boone said. ... Boone said he isn't certain OF Jacoby Ellsbury (strained right oblique) will be ready to come off the disabled list when he is eligible Thursday.
Blue Jays: Donaldson (dead arm) made his third straight start at DH instead of 3B. An hour after the game ended, Donaldson played catch on the outfield turf, making throws from right-center to the left field foul line, before fielding grounders and making throws to first base.
Yankees: LHP Jordan Montgomery starts New York's home opener Monday afternoon against the Rays, who had not announced a starter for their "bullpen day." Tampa Bay is using a four-man rotation and plans to turn to its bullpen to get through a game every fifth day.
Blue Jays: LHP Jaime Garcia makes his first start for Toronto as the Blue Jays begin a three-game series Monday night against the White Sox. RHP Miguel Gonzalez goes for Chicago.