Castillo, in his fourth career start, held the Diamondbacks hitless for the game’s first three innings, then after giving up a single to Paul Goldschmidt retired the next nine Diamondbacks.
Votto drove in three runs.
The Diamondbacks managed only the three hits and lost their fourth game in the past five.
The Reds took control quickly, their first three batters of the game against Diamondbacks starter Taijuan Walker coming around to score. Billy Hamilton started the game with a walk, stole second base and scored on Zack Cozart's triple.
Votto's National League-leading 26th home run of the year gave the Reds a 3-0 lead with an out yet to be recorded.
Hamilton’s two-out single in the fourth drove in Barnhart for a 4-0 lead, and Gennett’s home run, a line drove over the right-field fence in the fifth, making it 5-0.
Gennett established a career high with his 15th homer of the season, and moved his hitting streak to seven games.
Walker (6-4) was done after five innings, allowing five runs and five hits with four strikeouts and three walks.
Castillo allowed two hits in the bottom of the seventh, the closest Arizona came to scoring. Wandy Peralta came on to get the final out of the inning.
Barnhart’s second home run of the season came in the ninth off the Diamondbacks’ Jorge De La Rosa.
STEALS LEADER
Hamilton took over the major league lead in stolen bases with his second of the night Saturday, in the second inning. He finished with three for the game — all in the first four innings — and raised his total to 37.
UP NEXT
Reds: RHP Homer Bailey (1-2) brings a 12.66 ERA over his first three starts of the season into Sunday against Arizona. He's 2-2 in his career against the Diamondbacks.
Diamondbacks: LHP Patrick Corbin (6-8) is 1-1 with a 3.48 career ERA in six games against the Reds.