Jordan Pacheco hit a solo shot and also knocked in three runs for the Rockies, who won for just the fourth time in 11 games.
Dexter Fowler added a two-run blast and Troy Tulowitzki posted two RBI and scored twice to ensure that Alex White (2-1) earned the win despite allowing eight hits and seven runs -- six earned -- over five innings.
"[Arroyo] was leaving the ball up, and that doesn't favor well in this ballpark," Reds manager Dusty Baker said.
Colorado picked up four insurance runs in the bottom of the eighth to turn a one-run lead into a five-run bulge. With the bases loaded and one out, Aroldis Chapman's wild pitch plated Eric Young. Tulowitzki then walked to re- load the sacks, and Giambi also drew a base on balls to force in another run.
After a Seth Smith pop put, Pacheco brought in two with a single to make it 12-7 for the home team before a Chris Iannetta pop out ended the rally.
Rafael Betancourt put an end to the madness with a scoreless ninth.
Votto's RBI single in the first put the Reds on top, but the Rockies countered with four in the home half on Mark Ellis' solo homer, a Tulowitzki RBI single and a two-run blast from Giambi.
It was 6-1 for Colorado in the second as White doubled and Fowler unloaded a two-run homer to right, chasing Arroyo from the mound.
In the third, Heisey hit a one-out solo homer. Bruce walked two batters later and Francisco cut the Reds deficit to 6-4 on a two-run blast to right.
With runners on the corners in the fourth, Tulowitzki's sacrifice fly pushed across Colorado's seventh run, but Cincinnati countered in the fifth to tie the game on three consecutive homers by Heisey, Votto and Bruce.
Pacheco continued the longball onslaught with his first career homer to put the Rockies up 8-7 in the home fifth.
"It was nice to be able to contribute today," said the rookie.
Colorado has won 11 of its last 12 home games over Cincinnati...White has served up 12 home runs in 37 innings over four starts, and became the first pitcher to allow that many in one outing since the humidor was installed at Coors in 2002...This was Arroyo's shortest start since a 15-3 loss against Milwaukee on May 6, 2009. He has now allowed 40 homers this season, tying him with Eric Milton (2005) for most by a starter in one year in franchise history...This was Heisey's third two-homer game of 2011...Cincinnati last hit back-to-back-to-back homers on August 13, 2006 at Philadelphia...Ellis left the game in the sixth after being hit in the head by a Carlos Fisher pitch.