Dayan Viciedo doubled home the go-ahead run in the ninth inning and the White Sox rallied to beat the Blue Jays 4-3 Tuesday in Toronto.
Paul Konerko hit a game-tying homer and scored three runs as the White Sox won for just the second time in eight games.
Matt Lindstrom (1-0) got one out for the win and Addison Reed finished for his fifth save in as many opportunities.
Edwin Encarnacion and Adam Lind hit consecutive singles off Reed to begin the ninth, just the second and third hits he's allowed this season. Brett Lawrie followed with a sacrifice fly, but Reed got Rajai Davis and Maicer Izturis to fly out.
Colby Rasmus and J.P. Arencibia hit solo home runs for the Blue Jays, who couldn't hold on after taking a 2-1 lead in the sixth.
Rangers 4, Cubs 2: Derek Holland pitched seven shutout innings, Adrian Beltre hit a two-run home run, and Craig Gentry made a diving catch in the ninth to preserve Texas' win over the Cubs at a cold Wrigley Field.
Holland (1-1) at one point retired nine straight against the Cubs, who have lost three straight games. The Rangers left-hander struck out six and allowed two hits.
Beltre's home run off Cubs reliever Shawn Camp was his second of the year and gave the Rangers a 4-0 lead in the eighth.
Chicago starter Travis Wood (1-1) walked Ian Kinsler and was then relieved by Camp, who allowed Elvis Andrus to single to right before throwing a pickoff attempt away, allowing Kinsler to score and make it 2-0.
Cardinals at Pirates, ppd.: Rain wiped out Tuesday night's game between St. Louis and the Pirates in Pittsburgh.
The storm hit at the end of the second inning with the Pirates leading 4-2, and the game was called after a delay of 1 hour, 24 minutes. No makeup date was immediately announced.
The cancellation allows St. Louis starter Jake Westbrook to reset his ERA to 0.00. The right-hander has struggled against the Pirates in his career, and Pittsburgh turned five consecutive singles in the first inning into four runs.