TORONTO -- Jose Abreu powered the Chicago White Sox to a vital win at the midpoint of the season, and moved more than halfway toward breaking a home run record.

Abreu hit two solo homers, Alexei Ramirez added a two-run blast and the White Sox survived a shaky ninth inning to beat the Toronto Blue Jays 5-4 Friday night for their second win in nine games.

"Today was a very important win, especially the way we've been playing," Abreu said through a translator. "It was important to regain rhythm as a team."

Dayan Viciedo also went deep as the White Sox won for the second time in 12 road games and connected four times off Blue Jays knuckleballer R.A. Dickey.

"The Cubans played great tonight," White Sox left-hander John Danks said jokingly after getting homers from all three Cuban teammates in the starting lineup.

Abreu led off the fifth with his 24th home run, then connected for his 25th to begin the seventh. It was the fourth multihomer game of the season for Abreu, who is tied with Toronto's Edwin Encarnacion and Baltimore's Nelson Cruz for most homers in the majors.

Abreu is the second player to have four multihomer games in his first 67 career games. The other was Atlanta's Bob Horner in 1978.

"It's not a surprise," White Sox manager Robin Ventura said. "When he gets it on the barrel, it just seems to continue to go. It's like helium balls, they just continue to float."

The homers also moved Abreu more than halfway toward beating Mark McGwire's rookie home run record of 49, set with Oakland in 1987.

"I'm glad I don't have to face him," Danks said. "He's a great teammate, he's a heck of a ballplayer."

Encarnacion also homered, going back to back with Dioner Navarro in the sixth, but that was all the Blue Jays would manage against Danks, who won for the fourth time in five starts. Danks (7-6) came in 1-4 with a 6.46 ERA in six career starts against the Blue Jays, but was better in this one, allowing two runs and five hits in six innings. He walked none and struck out two.

"He was sharp," Ventura said. "He had a nice curveball and changeup."

Javy Guerra pitched the seventh and Zack Putnam worked the eighth before Ronald Belisario gave up a leadoff homer by pinch-hitter Colby Rasmus in the ninth. Belisario got Juan Francisco to ground out, but was replaced by Eric Surkamp after consecutive singles by Munenori Kawasaki and Anthony Gose.

Surkamp was replaced by Jake Petricka after pitch-hitter Adam Lind reached on a fielding error by third baseman Conor Gillaspie, loading the bases for Jose Reyes, who brought home a run with a fielder's choice. Petricka responded by getting Melky Cabrera to ground out for his second save.

Ventura said Belisario, who has blown four saves, will no longer serve as closer.

"There'll probably be some mixing up of opportunities and jobs and we'll go from there," he said.

Dickey (6-7) lost his third straight start, allowing five runs and five hits in six innings. He walked one and struck out nine.

"Tonight was a very bizarre outing," Dickey said. "I don't know how else to explain it."

Dickey has allowed 10 home runs over his past five starts, accounting for 13 of the 14 runs he's allowed in that span.

The four home runs off Dickey were the most he'd allowed since giving up six against Detroit on April 6, 2006, his first major league start as a knuckleball pitcher.

Dickey didn't allow a hit through the first four innings Friday. Abreu reached on a fielding error by shortstop Reyes in the second, but was erased on an inning-ending double play.

Toronto's Steve Tolleson hit a one-out double in the bottom of the second and went to third on Kawasaki's single, but was thrown out after straying too far from the base when Kawasaki got caught in a rundown between first and second.

Game notes

Nine straight White Sox games have been decided by three runs or fewer. ... The game was halted for four minutes in the second inning by an alarm and flashing lights in one of the center field restaurants. Play resumed before the flashing lights were turned off. ... Chicago OF Adam Eaton, who left Thursday's game in the first inning with left leg cramps, was held out of the lineup. ... White Sox LH Chris Sale (6-1) faces Blue Jays RH Marcus Stroman (4-2) on Saturday.