Happ hit an RBI single in the fifth inning and a three-run shot in the seventh, continuing his long run of success at Cincinnati. The All-Star outfielder, who starred at the University of Cincinnati before he was selected by Chicago in the first round of the 2015 amateur draft, has 16 career homers at Great American Ball Park.
Reyes' two-run drive in the fourth was his first homer since he was claimed off waivers from Cleveland on Monday.
''This was a really nice team win,'' Cubs manager David Ross said. ''Reyes had the big home run that gave us the lead. We had good at-bats up and down the lineup..''
Kyle Farmer had two hits and two RBIs for last-place Cincinnati, which has dropped five straight and seven of 10 overall. Graham Ashcraft (5-3) was charged with four runs, three earned, and six hits in 6 1/3 innings.
''I think I pitched better than the line suggested,'' Ashcraft said. ''I felt like I was able to control the four-seamer and two-seamer tonight. I got a lot of ground balls, a lot of soft contact. Reyes hit a slider down and away. ... He is a big strong guy. I gave him a pitch at his bat speed and he did what he did with it.''
The Cubs and Reds resumed their series in Cincinnati after playing in Thursday night's ''Field of Dreams'' game in Dyersville, Iowa.
After Farmer cut Chicago's lead to 3-2 with an RBI single in the fifth, Sean Newcomb replaced Adrian Sampson and struck out three straight batters to strand two runners. Newcomb (1-0) had five strikeouts in two innings for the win.
Reyes lifted the Cubs to a 2-1 lead with an opposite-field drive into the visitor's bullpen in the right-field corner in the fourth. It was his 10th homer of the season.
''We're really happy to have him here,'' Sampson said. ''He's fit right in.''
Happ's 10th homer made it 6-2, and Contreras tacked on a solo drive in the ninth. It was Happ's first homer since July 12.
''(Happ's) going really good right now,'' Ross said. ''He's got a lot of confidence in himself. He's been the consistent, solid player we've needed all season.''
Jake Fraley earned his first-inning double for Cincinnati. As he slid into the base, the ball got away from second baseman Nick Madrigal and glanced off Fraley's head before he banged his head off Madrigal's left knee. Fraley stayed in the game after spending a few minutes with a trainer.
Reds first baseman Joey Votto played in his 1,988th game, matching Hall of Famer Larry Walker for the most by a Canadian-born player.
Reds: INF Jonathan India was back with the team after spending Thursday night in an Iowa City hospital while doctors made sure he didn't develop compartment syndrome after being hit by a pitch on his left lower leg in the series opener.
Cubs right-hander Keegan Thompson (9-5, 3.36 ERA) and Reds right-hander Justin Dunn (0-1, 5.79 ERA) pitch on Sunday. It's Dunn's first career appearance against Chicago.
More AP MLB: https://apnews.com/hub/MLB and https://twitter.com/AP-Sports
Copyright 2022 STATS LLC and Associated Press. Any commercial use or distribution without the express written consent of STATS LLC and Associated Press is strictly prohibited.