CHICAGO -- It wasn't exactly the way David Robertson drew it up in his mind, while warming up in the bullpen, but the Chicago White Sox's closer will now have a lasting memory of his 19th save of this season.

Facing a bases-loaded situation with one out, Robertson worked out of the jam to help the White Sox start a six-game homestand on the right note. Robertson struck out Edwin Encarnacion and got Michael Saunders to pop out in Chicago's 3-2 win to open a weekend series against the Toronto Blue Jays on Friday night at U.S. Cellular Field.

"It would have been a lot of nicer if it was 1-2-3," Robertson said. "I'll remember that one for sure."

Nate Jones pitched a scoreless inning of relief for the win, which was the White Sox's fourth in the past five games. Right-hander Jesse Chavez allowed a run in one inning to take the loss for the Blue Jays (40-35), who've dropped four of their past five.

Toronto couldn't have asked for a better situation in the ninth, with Encarnacion and Saunders coming up with the bases full. Encarnacion has 19 home runs and Saunders has 15.

"They hold our offense in check," Blue Jays manager John Gibbons said. "It doesn't matter who they're throwing out there. They've got some good starters. They're always tough on us and they always limit what we do offensively. If we don't hold them down enough, that's what happens. But I thought we had a good shot tonight. Those are games you need to win."

Melky Cabrera went 3-for-4 with an RBI for the White Sox and was a triple shy of hitting for the cycle, Brett Lawrie went 3-for-4 and Todd Frazier went 2-for-4 with an RBI single that scored the winning run.

Left-hander Carlos Rodon started for Chicago (37-37) and took a no-decision, going 5 2/3 innings, striking out eight and allowing two runs.

Right-hander Aaron Sanchez started for the Blue Jays (40-35), taking a no-decision after allowing two runs in six innings. Kevin Pillar led Toronto by going 2-for-4 and driving in both runs.

Trailing 2-1 in the sixth, Toronto tied it thanks to three miscues by Rodon. The White Sox's starter plunked Michael Saunders to start the inning and then balked him to second, a call that led to Chicago pitching coach Don Cooper being ejected.

Saunders moved to third on a deep fly-out and scored on a grounder to first by Pillar, whose diving effort into first resulted in a run-scoring infield single with two outs. Rodon ran over to cover first, but his misstep near the bag allowed Pillar's hand to beat him.

In the seventh, Frazier put the White Sox back in front. His clutch two-out single scored Tim Anderson, who led off the inning with a double and moved to third on a fly-out. Chicago's bullpen made the slim margin hold up, despite Robertson's roller-coaster ninth.

"That felt good," Frazier said. "Squaring balls up. That's what I've been trying to do. Few and far between (this season). Seems the only ones I've been squaring up go over the wall, which is fine, but you've got to get those ones in between as you go through the year."

The Blue Jays took a 1-0 lead in the second after Saunders doubled to lead off the inning and scored on a one-out single by Pillar. The White Sox put runners on base in each of the first five innings but didn't break through against Sanchez until the fourth.

After failing to score with runners at first and third in the second, Chicago tied it 1-1 in the fourth after putting the first two hitters aboard on a walk and single. Alex Avila scored the tying run on a groundout by Avisail Garcia.

The White Sox went ahead in the fifth on Cabrera's two-out homer to right field for his third straight hit to follow a single in the first and double in the third.

"He was battling me there for a few pitches and you go back to that sweet zone that a lefty loves, down and in, kind of where that ball ended up," Sanchez said. "He hit it."

NOTES: White Sox 1B Jose Abreu didn't start because of soreness in both legs. Abreu was available to pinch hit, but manager Robin Ventura hoped to give him a full day of rest. ... The White Sox signed C Zack Collins, their top pick (No. 10 overall) in the 2016 draft. Collins received a signing bonus of $3,380,600. ... 1B/DH Justin Morneau (left elbow surgery) is with the White Sox, taking ground balls during his recovery. He is close to receiving a minor league rehab assignment. ... Toronto selected the contract of OF Junior Lake, 26, from Triple-A Buffalo on Friday and optioned OF Darrell Ceciliani to Buffalo. ... Blue Jays 1B/DH Justin Smoak had X-rays done on his left knee Friday, after fouling a ball off it Wednesday against the Arizona Diamondbacks. ... Injured LHPs Brett Cecil (torn lat muscle) and Franklin Morales (left shoulder fatigue) will move to Triple-A Buffalo on Saturday as the next step in their rehab stints. Blue Jays manager John Gibbons said they're getting closer to returning.