TORONTO -- Right-fielder Dayan Viciedo hit a three-run homer in the seventh inning and left-hander Chris Sale pitched seven innings as the Chicago White Sox defeated the Toronto Blue Jays 4-3 on Saturday.

The Blue Jays scored one run in the ninth inning as their late rally fell short for the second game in a row.

Sale (7-1) held the Blue Jays to four hits and five walks while striking out six. The only runs he allowed came on a two-run homer by right-fielder Darin Mastroianni in the fourth.

Blue Jays rookie right-hander Marcus Stroman pitched well over 6 2/3 innings, allowing two hits, two walks and two runs while striking out six. He did not factor in the decision.

Stroman allowed a second-inning double to White Sox designated hitter Adam Dunn and then walked him to lead off the fifth and nothing more through six innings.

But in the seventh inning, White Sox first baseman Jose Abreu doubled with two out to extend his career-best hitting streak to 13 games and Dunn walked for the second time in the game.

Right-hander Dustin McGowan (4-3) came in from the bullpen and his first-pitch slider was launched into left-field seats by Viciedo for his eighth homer of the season and a 3-2 Chicago lead.

The White Sox added a run in the eighth on a single by pinch hitter Alexei Ramirez against reliever Aaron Loup. The left-hander replaced McGowan after two-out singles by centre-fielder Adam Eaton and second baseman Gordon Beckham. Chicago loaded the bases in the ninth with none out against Blue Jays closer Casey Janssen but could not score.

The White Sox (38-44) have won two in a row over the Blue Jays (45-38) to assure themselves of a split in the four-game series.

Right-hander Zach Putnam who got the final out of the eighth stayed in the game for the ninth and allowed a leadoff double by pinch hitter Anthony Gose. Second baseman Munenori Kawasaki singled him home to cut the lead to one.

Shortstop Jose Reyes hit Kawasaki in to a force out at second and left-fielder Melky Cabrera hit a fly to right for the second out. First baseman Edwin Encarnacion ended the game by forcing Reyes out at second. Putnam picked up his first save of the season.

It was a disappointing result for Stroman who was coming off a strong win over the New York Yankees last Tuesday when he allowed three hits and one run in eight innings.

The Blue Jays took a 2-0 lead in the fourth inning when Mastroianni snapped a 0-for-14 streak to open his season in the majors this season by taking a 3-2 change-up to left for a two-run homer. It was his fourth career homer in the majors with the first three coming with the Minnesota Twins in 2012. The homer came after Colby Rasmus took a two-out walk.

NOTES: Announced attendance at Rogers Centre was 39,623. aBefore the game on Saturday the Blue Jays recalled outfielder Darin Mastroianni from triple-A Buffalo, where he was batting .289 with four homers in 69 games, and returned LHP Rob Rasmussen on option to the Bisons. Mastroianni started in right field. a Left-hander Mark Buehrle (10-4) will start the series finale on Sunday for the Blue Jays against his former team. The White Sox will start left-hander Jose Quintana (4-7, 3.69). aThe Blue Jays have Monday off before they complete the home stand with two afternoon games against the Milwaukee Brewers.