Jake Arrieta pitched one-hit ball for seven innings without allowing a stolen base on Sunday, and Ian Happ homered twice in the ballpark where he played as a college star, leading Chicago to a 6-2 victory over the Cincinnati Reds.
Back in the ballpark where he threw a no-hitter last season, Arrieta was back in form, allowing only Joey Votto's first-inning single and a pair of walks - the Reds were never in position to try to steal. Votto singled home a pair of runs in the eighth off Koji Uehara.
Arrieta matched his season high by going seven innings for the third time.
Happ grew up in the Pittsburgh area and played at the University of Cincinnati, including one game at Great American Ball Park.
The first-round pick from 2015 hit a two-run homer and a solo shot off Tim Adleman (5-5). The rookie added an RBI single, the third time he's driven in four runs in a game.
Anthony Rizzo also had a solo homer, and Javier Baez doubled home a run as the Cubs prevented a three-game sweep.
After a day off, they open a six-game homestand heading into the All-Star break. John Lackey (5-9) starts against Tampa Bay's Chris Archer (6-5). In his last start, Lackey gave up a season-high eight runs in 5 1/3 innings of an 8-4 loss to Washington.
>>White Sox Rally Past Rangers
Reliever Jose Leclerc (1-2) gave up a two-run home run with two outs in the eighth to Chicago's Yolmer Sanchez and the White Sox beat the Rangers 6-5 on Sunday.
It was a sloppy, error- and walk-filled game in which both teams gave the other numerous chances. The White Sox committed a season-high four errors, including two on the same play that allowed a run to score.
The Sox also nearly let the Rangers off the hook after taking the lead, loading the bases in the ninth before David Robertson (4-2) struck out Carlos Gomez to end the game.
Even that final strikeout was sloppy, as the ball got away from catcher Kevan Smith. He could have just thrown to first to finalize the game, because Gomez didn't run, but Smith instead grabbed the ball and dove to touch home plate before Joey Gallo could score from home.
The Rangers are tied for most blown saves in the American League with 17.
The White Sox were also frustrated by mistakes. Among the team's four errors, two came in the fourth inning when the Rangers' Robinson Chirinos stole second. Smith's throw to second sailed out into center field, allowing Chirinos to head for third. Center fielder Adam Engel retrieved it and tried to throw out Chirinos at third, but the throw was off target and Chirinos went home.
Sanchez, however, erased the problems with the dramatic, late, home run, just his fourth of the season.
Melky Cabrera also homered for Chicago - hitting his ninth in the first - and Mike Napoli hit his 16th for Texas.
White Sox starter Jose Quintana had his shortest outing since May 30, giving up five runs in 4 1/3 innings. He walked two and struck out five. Quintana had thrown 19 scoreless innings before giving up a run in the third inning.
Texas starter Tyson Ross gave up four runs in five innings, walked five, and hit one batter.
Jonathan Lucroy had given the Rangers a 5-4 lead with a two-run single in the fifth. He noted the frustrations with the team's inability to hold on to late leads, but said it doesn't matter how the team loses.
Carlos Rodon (0-1, 0.00 ERA) makes his second start of the season at Oakland on Monday after returning from the disabled list.
>>Scherzer, Harper Lead Nats Past Cardinals
Bryce Harper homered twice against Carlos Martinez, Max Scherzer struck out 12 over seven scoreless innings and the Nationals beat the St. Louis Cardinals 7-2.
Harper also doubled and had four RBIs to pace Washington, which snapped a three-game skid and had lost five of seven.
The Cardinals had won four straight and six of seven overall, including series victories against the Arizona Diamondbacks and Nationals.
Scherzer (10-5) allowed two hits and two walks while lowering his major league-leading ERA to 1.94. Scherzer's double-digit strikeout performance was his 10th this season and 59th of his career.
Martinez (6-7) entered the game ranked fourth in the NL in ERA but allowed five runs in five innings. The right-hander had allowed five earned runs over his previous four starts combined.
Wilmer Difo and Brian Goodwin added sacrifice flies.
Tommy Pham's two-run homer in the eighth, his 10th of the season, off reliever Enny Romero got the Cardinals on the scoreboard.
Yadier Molina's 16-game hit streak, which tied his career long, came to an end with an 0-for-4 performance.
Adam Wainwright (8-5, 5.17 ERA) begins a four-game series against the visiting Marlins on Monday night. He is 5-1 with a 2.64 ERA in eight home starts this season.