Carlos Carrasco (5-4) allowed two runs in six innings, sending the Reds to their season-high sixth straight loss.
Moss homered in the third to break a 2-all tie and added a two-run double in the fourth as Cleveland won for the sixth time in eight games.
Mike Leake (2-3) stumbled through four innings, allowing five runs, seven hits and five walks.
Cincinnati has been outscored 47-16 during its losing streak and dropped to a season-worst five games below .500 at 18-23.
Carrasco struck out seven, including the side in his final inning, and held the Reds to four hits.
The Indians, who were coming off a 5-2 road trip, improved to 7-12 at Progressive Field. Cleveland leads the annual Battle of Ohio 46-44 since 1997, when interleague play began.
Leake was coming off one of the worst outings of his career. The right-hander allowed a personal-worst nine runs and 11 hits, including three homers, over five innings in an 11-2 loss to San Francisco.
Billy Hamilton's RBI groundout in the second gave the Reds their first lead since their last win on May 14, but that didn't hold up for long. The Indians went ahead in the bottom half. Michael Bourn drew a bases-loaded walk and Kipnis added an RBI single.
Todd Frazier's RBI double tied the game in the third.
Reds: LHP Manny Parra (neck strain) made his second rehab appearance for Triple-A Louisville, tossing 1 2-3 scoreless innings Friday against Pawtucket.
Indians: OF Michael Brantley, who has been dealing with a sore back since spring training, was the DH on Friday. He has appeared in 35 of Cleveland's 41 games.
Reds: RHP Anthony DeSclafani, who was acquired from the Marlins in December, seeks his first win since April 20. The rookie is 0-4 with a 6.38 ERA in five starts.
Indians: RHP Corey Kluber, who has been dominant in his last two starts, will look for his second win of the season. Kluber, last season's AL Cy Young winner, has 30 strikeouts in 17 innings over his last two outings.