Kuhl helped the Pirates avoid being swept for the second time in three series against the Reds this season. Even with the win, Pittsburgh has lost eight of its past 11 games since a six-game winning streak put the Pirates one game above .500 and two games back of the National League Central lead on July 21.
Pittsburgh (52-56) is now 5 1/2 games behind the division-leading Cubs. Cincinnati (44-64) remains in last place, 13 1/2 games behind Chicago.
After allowing two runs in 5 1/3 innings in his previous start, Kuhl (4-7) built on that performance Thursday for his first win since July 6. He went seven innings for the second time in 22 starts this season, allowing four hits and two walks while striking out six.
Reds right-hander Sal Romano (2-3) wasn't as effective while giving up four runs on eight hits in six innings. However, he shut out Pittsburgh through his final three innings.
The Pirates struck early with two runs in the first inning, partially facilitated by an error from Reds left fielder Adam Duvall. After Starling Marte led off the inning with a single to center, Adam Frazier singled down the left field line before Duvall tossed the ball over third baseman Eugenio Suarez.
Marte scored on the error while Frazier advanced to second on the throw and to third once it got past Suarez. Andrew McCutchen drove in Frazier with a groundball to third base to make it 2-0.
Cincinnati had similar struggles two innings later, when the Pirates tacked on two more runs.
Marte led off with a double to left-center before advancing third on a wild pitch. He scored on a hit by McCutchen. Josh Bell followed with another single before a third straight single, from David Freese, scored McCutchen to extend Pittsburgh's lead to 4-0.
After Romano exited the game, Bell made it 5-0 on a sacrifice fly and Freese extended it to 6-0 with a single in the seventh inning.
A.J. Schugel and Dovydas Neverauskas each pitched a scoreless inning to cap the four-hit shutout.
NOTES: Pirates 2B Josh Harrison did not start for a third consecutive game die to lower leg discomfort. He grounded out in a seventh-inning pinch-hit at-bat Wednesday but did not appear Thursday. ... Pirates LF Starling Marte has hit safely in 10 of 14 games since returning from an 80-game suspension stemming from testing positive for performance enhancing drugs. He was 3-for-5 with three runs Thursday. ... Reds CF Billy Hamilton was ejected after striking out to end the fifth inning. He was 0-for-3 with two strikeouts Thursday. ... Reds rookie RF Jesse Winker went 0-for-3 with a walk after hitting a home run in each of his previous two games.