Arroyo (4-4) struck out six and allowed one runner to reach third in winning his third straight start against Philadelphia. He was 1-7 in his first 10 games against the Phillies, but is 3-0 with a 1.52 ERA in three starts against them since last Aug. 22.
"This game is so funny," Arroyo said. "One pitch can surely change things. I've been able to keep their power guys quiet so that's helped."
Votto had a two-run shot and walked twice to reach safely six times. Ryan Hanigan hit a three-run homer.
"I'm trying to see the ball as long as possible and direct it where I want it," Votto said.
Kyle Kendrick (4-2) gave up four runs and eight hits with a season-high four walks in six innings. Kendrick hadn't allowed more than two runs in his previous seven starts.
Cincinnati won for the seventh time in its past eight games and improved to 4-1 against the Phillies this year.
Arroyo entered with a 6.00 career ERA against the Phillies, including a 9.60 ERA in three starts at Citizens Bank Park.
"We used to hit him good," Phillies manager Charlie Manuel said. "The last three times, he's pitched us the same. He's pitched us backwards, slow hooks and change-ups. He's given us fits."
Todd Frazier led off the second with an infield single, snapping an 0-for-19 slump. Donald Lutz followed with a single. Then Hanigan connected for his first extra-base hit of the season, giving the Reds a 3-0 lead. Hanigan had eight singles in 54 at-bats before taking Kendrick deep to left.
Hanigan was hit by a pitch leading off the sixth. He advanced on a sacrifice and scored on Zack Cozart's two-out double to right to make it 4-0.
The Reds added four runs off three relievers in the eighth. Votto hit one out in the ninth.
Arroyo didn't need all that support. He baffled hitters with his assortment of slow stuff, occasionally mixing a fastball with his mid-70s off-speed pitches.
"Arroyo pitched masterfully," Reds manager Dusty Baker said. "It was still close before our offense exploded at the end."
The Phillies have been shut out six times in 43 games, matching their total from all of last season.
"They say the game builds character," Manuel said. "I don't know about building, but it definitely reveals it."
For Kendrick, it was his worst outing since allowing five runs in Philadelphia's home opener. Kendrick has been Philadelphia's most consistent starter this season, posting a 2.82 ERA and outperforming Cole Hamels, Cliff Lee and Roy Halladay.
Since returning to the rotation last August, Kendrick is 11-6 with a 3.02 ERA in 21 starts.
"My command wasn't good and I fell behind a lot," Kendrick said. "It was a tough day all around."
Carlos Zambrano had five strikeouts in two innings in his first appearance in an extended spring training game since the three-time All-Star signed a minor league deal with the Phillies. ... Injured Phillies LHP John Lannan threw a bullpen session and is expected to throw again Monday. ... Reds RF Jay Bruce extended his hitting streak to nine games. ... The Reds optioned LHP Tony Cingrani to Triple-A Louisville and recalled INF Neftali Soto. ... Phillies CF John Mayberry Jr. struck out swinging four times. ... Reds third base coach Chris Speier got cheers for planting a kiss on the Phillie Phanatic while the furry green mascot was pretending to be Alicia Keys singing "Girl on Fire" before the sixth inning. ... Homer Bailey (2-3, 3.51 ERA) opposes Philadelphia's Jonathan Pettibone (3-0, 3.41 ERA) in the series finale Sunday afternoon.
Follow Rob Maaddi on Twitter: https://twitter.com/RobMaaddi