Amir Garrett (5-3) struck out Kyle Schwarber to end the ninth and Raisel Iglesias worked around a one-out double in the 10th for his 33rd save. Nico Horner lined out to right to end it.
The Reds finished with an 11-8 record against the Cubs this season.
Cincinnati slugger Eugenio Suárez hit his 48th homer, one behind Pete Alonso of the New York Mets for the major league lead. The total is the most ever by a Venezuelan player, breaking the previous mark of 47 by Andrés Galarraga.
Suárez also tied the NL record for homers by a third baseman. Mike Schmidt of the Phillies (1980) and Adrián Beltré of the Dodgers (2004) are the others reach the mark.
Cincinnati starter Tyler Mahle allowed just one run on one hit in six innings.
Chicago starter Jon Lester allowed one run on six hits in five-plus innings.
Suárez’s solo shot in the fourth inning gave the Reds a 1-0 lead.
The Cubs tied it in the bottom half of the inning with some aggressive — and perhaps lucky — base running.
Nicholas Castellanos led off with a liner to left-center and headed for second base. Left fielder Phillip Ervin, though, fielded the ball quickly and fired a strike to second baseman Alex Blandino. The ball beat Castellanos by about 10 feet, but he somehow avoided the tag and was called safe.
Castellanos then to third on a wild pitch and scored on a sacrifice fly by Schwarber.
Cincinnati took a 2-1 lead in the seventh on a sacrifice fly by Blandino before Willson Contreras tied it with a two-out solo blast, which came on an 0-2 pitch from reliever Robert Stephenson in the bottom of the inning.
Reds: C/INF Kyle Farmer (strained left oblique) was activated from the 10-day IL before the game. … ING Freddy Galvis missed his fourth straight game with left knee soreness.
Reds: Ace Luis Castillo (15-6, 3.22 ERA) faces Cy Young Award winner Jacob deGrom (9-8, 2.61) Friday night in the opener of a three-game home series against the Mets.