TORONTO — Josh Donaldson and the Blue Jays followed a recent formula to play a winning tune against the Chicago White Sox.

Russell Martin hit a go-ahead, two-run homer in the seventh inning, Donaldson and Aledmys Diaz each had a solo shot and the Blue Jays beat the White Sox 4-2 on Monday night for their third straight victory.

All six runs in the game came on homers.

Martin erased a 2-1 deficit with a two-out drive into the left-field bullpen off Danny Farquhar (1-1). The homer was Martin's first of the season.

The Blue Jays have come from behind in all three wins during their streak, rallying to beat the New York Yankees on Saturday and Sunday.

"When your bullpen is keeping you in the game and not giving up any runs, it allows you to make a comeback and that's what we've been doing," Martin said.

Donaldson went deep for the first time this season with an opposite-field drive off Reynaldo Lopez in the sixth.

The slugger faced the White Sox dugout and pretended to blow a whistle after he crossed home plate. The gesture was directed at Chicago first base coach Daryl Boston, who blows a whistle to acknowledge great defensive plays by his team.

"As soon as I stepped in the box he started blowing it," Donaldson said. "I felt it would be appropriate if I blew it back at him when they didn't make the play."

Boston was seen laughing at Donaldson's display.

"I had hit the whistle a couple of times hard before he went to the plate and he responded," Boston said. "You can pin that homer on me."

Boston said the Royals also have demonstrated a dislike for his whistle, the same kind used by football, basketball and hockey referees.

Welington Castillo went deep twice for the White Sox, his sixth career multihomer game and third straight against Toronto. Castillo hit five home runs against the Blue Jays in 2017, his highest total against any opponent.

Seung Hwan Oh (1-0) got the win despite allowing Castillo's second homer, a tiebreaking shot in the top of the seventh.

Ryan Tepera pitched the eighth and Roberto Osuna finished for his second save.

Castillo also connected off left-hander Jaime Garcia in the fourth.

Making his first start for the Blue Jays, Garcia allowed one run and four hits in six innings. He walked two and struck out seven.

"He has nasty stuff," Martin said. "When he's able to command the strike zone and get some early strikes, it's really tough on those hitters."

Diaz added an insurance run with a first-pitch drive off Farquhar in the eighth.

"He left two pitches up and they were able to put good swings on them and get them out of the ballpark," White Sox manager Rick Renteria said.

Lopez allowed one run and two hits in six innings. The right-hander walked two and struck out six.

Lopez held the Blue Jays without a hit until Curtis Granderson led off the fifth with a liner that caromed off shortstop Tim Anderson.

The White Sox have hit nine home runs over their first three games, six on opening day.

LAUNCHING PAD

The Blue Jays have homered in five straight games to begin the season, the first time they've done that since 2011.

TAG UP, TAGGED OUT

Granderson threw out Jose Abreu at second base as the White Sox slugger tried to advance on Matt Davidson's fly ball in the sixth.

TRAINER'S ROOM

Blue Jays: Donaldson (dead arm) threw on the field for the second straight day and is expected to return to third base Tuesday, manager John Gibbons said.

UP NEXT

White Sox: RHP Miguel Gonzalez is 7-4 with a 3.63 ERA in 15 career games against Toronto.

Blue Jays: LHP J.A. Happ (0-1, 3.86) allowed three runs over 4 2/3 innings in an opening day loss to the New York Yankees.