CHICAGO -- Kyle Hendricks may not be completely back to the stingy ERA and dominance he exhibited in 2016, but he is getting close.
Hendricks (3-2) allowed two runs on six hits, all over the first three innings. He permitted just one baserunner and no hits over his final three innings.
"That game was one of my better ones because I got stronger in those later innings," he said. "My last three innings felt much better, much more under control. Getting stronger as the game goes is always a good sign."
Hendricks had a National League-low 2.13 ERA in 2016. He lowered his 2017 ERA to 3.35 on Wednesday.
"He looked really, really good," said Cubs manager Joe Maddon. "Velocity was up, you saw the bad takes, the bad swings, contact wasn't as hard. I talked to him afterwards and he was really excited. He knew that was right tonight, and that's a great game to build off of."
The Cubs (20-19) won their second straight over the Reds, and they will go for a series sweep in the finale on Thursday. Cincinnati (19-20) took its season-high fifth loss in a row.
Chicago also claimed two of three in an April series at Cincinnati.
Hendricks walked two and struck out four in a 107-pitch outing on another hot night with the wind blowing out.
Reds right-hander Scott Feldman (2-4) worked just 2 2/3 innings, giving up seven runs (five earned) on five hits. He walked three and struck out four while throwing 88 pitches.
"We had a three-run inning off of some of their better bullpen pieces, which was good to see to get back into the game," Reds manager Bryan Price said. "It was a good effort at the end, but we made some mistakes on the front end of that game that cost us early."
Cozart went 3-for-5 with two RBIs, while Duvall was 2-for-4 with one run batted in.
For the second night, the Reds jumped to a 1-0 lead as Billy Hamilton led off the first inning with a single, stole second and scored on Cozart's base hit to right.
The Cubs replied in the second as rookie Ian Happ walked, reached third on Zobrist's single and came home on Addison Russell's fielder's-choice grounder to short.
Feldman then walked Kris Bryant to load the bases again, and Rizzo, the ninth batter of the inning, bounced a base hit to shallow right to bring in Jay and Schwarber for a 5-1 lead.
Cincinnati got one run back in the third on Cozart's leadoff homer to left, his fourth of the season.
Chicago had runners on second and third with one out in the third and Hendricks made it 6-2 when he brought home Zobrist with a successful sacrifice bunt. Jay followed with a single up the middle, scoring Montero to make it 7-2.
Feldman was then pulled, leaving with a runner on first for right-handed reliever Austin Brice, who closed the inning on Schwarber's groundout to second.
"Too many pitches, bad command tonight, so I've got some stuff to work on and iron it out for next times," Feldman said. "You've got able to hit your spots and make pitches and just didn't do that today.
Cubs closer Wade Davis worked a perfect ninth with a contentious ending for his ninth save.
Chicago shortstop Addison Russell was off target on a throw to an outstretched first baseman Rizzo to get Votto on a game-ending groundout.
First base umpire Ed Hickox called Votto safe, but replay officials in New York overturned the call.
"We have to have -- without question -- a shot of that play that's worthy of overturning that call," Price said. "On the big screen, we didn't see it."
NOTES: Nine Reds players have been on the disabled list this season. In the last four years, 41 different players have made 66 appearances. ... The Reds are expected to recall LHP Amir Garrett (3-2, 4.25) from Triple-A Louisville for a Thursday start against Cubs LHP Jon Lester (1-2, 3.45 ERA). ... Chicago called up RHP Pierce Johnson from Triple-A Iowa and optioned INF Jeimer Candelario to Iowa. Johnson was 2-0 with a 2.31 ERA in 12 Triple-A outings. ... Cubs manager Joe Maddon said he would mark his 1,000th career managerial victory, recorded Tuesday, by donating 1,000 meals to the homeless via service organizations in both Chicago and Tampa. ... Chicago RHP Wade Davis has not allowed a home run in relief in his last 64 1/3 innings since Sept. 24, 2015, the second-longest major league streak behind Baltimore LHP Zach Britton's 72-inning stretch.