Burke had not homered since last Sept. 16 with Houston. But when he came up in the fifth, Dunn called his shot.
"Right before that pitch," Dunn said. "I had a gut feeling about it. He made me look good."
Burke had 20 home run in his previous three seasons combined, and he had gone 166 at-bats since his last one.
"Pretty bold," he said of Dunn's prediction. "He's got fresh eyes."
Arizona manager Bob Melvin wishes Dunn, acquired this week from Cincinnati, had arrived even sooner.
"Adam should have been here a while ago calling homers," he said.
The two home runs were enough for Haren (13-6), who pitched eight sharp innings, giving up one run while striking out nine.
Haren also had two hits and scored a run to win for the sixth time in seven starts.
"I've been going through a stretch where I was scuffling," he said. "That's just part of a long season, making 33, 34 starts. Not all of them are going to go great. I worked on a few things in the bullpen, got myself right and just felt a lot better out there."
Haren was happy to see Burke homer before the Diamondbacks go to Houston to play Burke's former team in a three-game series that starts Friday.
"Everyone's pulling for him," Haren said. "He's a big part of this team, he can play any position, and we're going to need him down the stretch."
Matt Holliday hit his 23rd home run for Rockies, who went 3-7 on their homestand. Arizona won two of three in the series, dropping the defending NL champions nine games behind in the West.
"It was a disappointing week, it turned into a disappointing 10 days," Rockies manager Clint Hurdle said. "We needed to play better and we didn't. We have to find a way to get productive."
Glendon Rusch (4-4) shut down the Diamondbacks for four innings before they broke loose in the fifth.
Rusch had retired 11 straight batters before Mark Reynolds led off the inning with a double, and Snyder put Arizona ahead 2-1 lead with his 11th homer. Burke followed with his first homer of the season to make it 3-1.
"I started off making a bad pitch to Snyder," Rusch said. "After that, two walks really hurt after Drew got the hit. It gave them a chance to have a big inning."
Chris Young doubled home a run in the Arizona sixth to make it 6-1.
The Rockies took a 1-0 lead in the second. Ian Stewart singled to right and went to second when Dunn misplayed the ball for an error.
Chris Iannetta, a late addition to the lineup when catcher Yorvit Torrealba was scratched, hit an RBI double. Torrealba was scratched because of a left knee injury. An MRI revealed torn meniscus in the knee, but he won't be placed on the disabled list yet.
"In the morning I woke up with a little pain," Torrealba said. "When I got here I tried to play and tried to squat a few times and it was kind of painful."
The Rockies called up catcher Adam Melhuse from Triple-A Colorado Springs to back up Iannetta. He drove the 70 miles north to Denver and arrived in the sixth inning.
"It's not the first time we've had to make a call and get a player up the road," Hurdle said. "It is the first time I've ever gone six innings with only one catcher."
- Drew extended his hitting streak to 16 games with a single in the fifth.
- Colorado's Willy Taveras stole his 53rd base, tying Eric Young's single-season franchise record set in 1996.
- Rockies OF Cory Sullivan was optioned to Triple-A to make room for Melhuse on the roster.