Chicago scored three runs in the seventh off Anibal Sanchez (0-2) after managing only one hit in the first six innings. John Danks (2-0) allowed six hits and three walks in 6 1-3 innings, but the Tigers could score only one run off him.
The White Sox scored three runs on four hits in a top of the seventh that took about 25 minutes. Abreu's tying double was upheld after a replay review, and Chicago scored another run when a call at the plate was overturned following a review.
Sanchez allowed three runs and five hits in 6 1-3 innings. He struck out five and walked one.
Danks appeared to be in trouble in the second, when the Tigers had the bases loaded with nobody out after two straight walks. Alex Avila brought a run home with a groundout, but Danks got out of the jam thanks to two consecutive popups.
The Chicago left-hander went on to post his fourth consecutive quality start to begin the season.
Sanchez looked even better until the game slowed to a crawl in the seventh. After a leadoff double by Conor Gillaspie, Abreu lifted a drive down the line in right that a sliding Torii Hunter was unable to come up with. The ball bounced into the seats for a double, and although the Tigers challenged whether it was fair or foul, the call was upheld and the game was tied.
One out later, Viciedo put the White Sox ahead with a double to deep center, and Alexei Ramirez followed with a single to left. Viciedo initially held up at third, but left fielder Rajai Davis' throw missed everybody, and the ball ended up near the Chicago dugout.
Sanchez retrieved it and threw back to the plate, where a sliding Viciedo was at first called out. The White Sox had lost their challenge earlier in the game, but umpires chose to review the play, and the call was changed, putting Chicago up 3-1.
The Tigers put men on first and third with one out in the seventh, but Ian Kinsler hit into a double play. The Tigers had men on first and second with one out in the ninth, but Davis lined out to left and Kinsler hit a grounder to end it as rain began to fall over the field.
Miguel Cabrera's early slump continued. The Detroit slugger went 0 for 4, lowering his average to .206.
NOTES: Chicago's Adam Dunn struck out three times. ... Justin Verlander (2-1) takes the mound for Detroit on Tuesday night. Chris Sale (3-0) was listed as the Chicago starter, but manager Robin Ventura indicated he might need to be replaced because of general muscle soreness.