Scooter Gennett hit a two-run homer in the sixth inning and doubled and scored the go-ahead run in the eighth, pulling away instead of letting one get away.
"We really needed to get the monkey off of our back," Reds manager Bryan Price said. "It's one of the most satisfying wins we've had."
The Reds (30-39) had taken a 3-0 lead on Gennett's two-run homer only to see the Rays (37-36) rally to tie it on Daniel Robertson's two-run shot in the seventh.
But Rays reliever Jose Alvarado faced three batters in the eighth and all three scored. Gennett had a leadoff double and scored on Joey Votto's RBI single. Adam Duvall walked, and reliever Danny Farquhar gave up a two-run single to rookie Jesse Winker for a 6-3 Reds lead.
Votto singled again in the ninth off Farquhar and eventually scored on a wild pitch.
"There were a lot of good things," Price said. "There's no quit in this bunch and they came out and played a great game when we really needed to get a win."
Michael Lorenzen (4-2) gave up Robertson's tying home run in the seventh but picked up the win in relief. Jake Odorizzi (4-4) took the loss for Tampa Bay.
"I shouldn't have walked Billy Hamilton. That's the fastest guy in the league," Odorizzi said of the batter immediately preceding Gennett's home run. "I got behind and he barreled it up. When hitters are in control of counts, they can do more damage."
The Rays got a solo home run from Steven Souza -- his second in two games -- to start their comeback in the sixth, but the bullpen couldn't keep it close.
Cincinnati took a 1-0 lead in the fifth inning when Scott Schebler crushed a solo home run to right field. The homer was his 19th this season.
Until that shot, Odorizzi had held the Reds scoreless on two hits in the first four innings.
Cincinnati starter Scott Feldman got himself in and out of jams in the early innings, matching Odorizzi in keeping the game scoreless.
Tampa Bay had two singles in the second, but Feldman got Rays newcomer Trevor Plouffe and Robertson out to end the inning.
Mallex Smith had a single in the third but was caught stealing to end the inning. The Rays had the bases loaded with one out in the fourth, only to see Plouffe ground into an inning-ending double play.
Rays shortstop Tim Beckham left the game after being hit on the left hand by a pitch in the fourth inning. Beckham stayed in as a runner but was replaced in the fifth, with Robertson sliding from second to short and Taylor Featherston taking over at second.
Beckham is day to day with a bruise, but X-rays were negative and he hopes to return in the next few days.
"I definitely thought it was worse when it first happened," Beckham said after the game. "I couldn't hardly squeeze my glove so I knew I wasn't going to be able to swing the bat."
NOTES: INF Trevor Plouffe made his Rays debut as the designated hitter, batting seventh and grounding out to the pitcher with two on and one out in the second inning. He singled in the seventh and scored. Plouffe, 31, was acquired from the Oakland Athletics on Saturday after being designated for assignment. Plouffe hit .214 with seven home runs for Oakland this season. To make room for him, the Rays designated INF Mike Martinez for assignment. ... The Reds made four roster moves, placing SS Zack Cosart (strained right quad) and RHP Bronson Arroyo (strained right shoulder) on the 10-day disabled list. With two openings, the Reds recalled rookie OF Jesse Winker from Triple-A Louisville and used him as the DH, batting seventh. Winker hit a two-run single to extend the Reds' lead in the eighth inning. ... The Reds also recalled RHP Ariel Hernandez from Double-A Pensacola.