With the wind blowing out at 15 mph, the hitters ruled at Wrigley Field. There were seven total home runs, and Jeff Baker hit a team-record four doubles for the Rockies.
Down 8-0 in the fourth inning still trailing 9-1 in the sixth, the Cubs came back and sent Colorado to its fifth loss in a row.
DeRosa and Henry Blanco hit two-run homers and Edmonds had a two-run double during a six-run burst in the seventh that put Chicago ahead.
Edmonds earlier hit his first home run since joining the Cubs this month. He finished with three hits and atoned for an error in center field.
DeRosa's go-ahead shot off reliever Manny Corpas was the Cubs' fourth homer of the afternoon. Todd Helton, Chris Iannetta and Jeff Spilborghs homered for the Rockies.
Scott Eyre (2-0) got the win by getting the final out of the seventh inning. Kerry Wood pitched the ninth for his 13th save in 17 chances.
Aaron Cook and Corpas (0-3) couldn't hold the lead for the defending NL champions, now last in the West.
Coming off a four-hit, complete game win over the Mets, Cook was in control until the sixth when Kosuke Fukudome and Edmonds hit consecutive home runs that made it 9-4.
Blanco's first homer since Sept. 22, 2006, pulled the Cubs closer in the seventh. Cook went 6 1-3 innings, allowing 10 hits and leaving after giving up a single to Micah Hoffpauir.
Blanco and Hoffpauir entered the game in a sixth-inning double switch and were pivotal in the rally.
Corpas gave up a single to Fukudome before Edmonds' made it 9-8. DeRosa then homered to left-center, his fifth of the season, and sending the crowd of 39,686 into a frenzy.
Cubs starter Ted Lilly gave up eight hits and seven runs in three innings in his shortest outing of the season. Outscored 14-4 in the first inning of their previous six games, the Rockies took a 4-0 lead with Helton's three-run homer the big hit.