A.J. Burnett (5-2) won his fourth consecutive start, working around five hits and four walks to hold the Reds to three runs over five innings. The right-hander struck out eight.
Joel Hanrahan notched his 15th save, fanning the side in the ninth as the Bucs took the opener of a three-game set and pulled to within two games of National League Central-leading Cincinnati.
Reds starter Homer Bailey (4-4) was tagged for six runs on eight hits over three innings.
Joey Votto went 2-for-4 with a pair of RBI and Zack Cozart added three hits for Cincinnati.