Hahn (6-6) improved to 4-1 over his last six starts after giving up one run on four hits. He walked two and struck out six.
Tyler Clippard retired the final four hitters for his 14th save.
Butler, Josh Reddick, Mark Canha and Eric Sogard drove in runs as the A's won the series. Billy Burns added two hits and scored twice.
Chad Bettis (4-3) allowed three runs on seven hits and four walks in 5 2-3 innings.
Butler led off the third with a shot into left field. Rafael Ynoa slammed into the wall and was shaken up, allowing Butler to chug into third, his first three-bagger since August 2012.
Butler scored on Sogard's sacrifice fly, and hit an RBI single in the fifth. Burns tripled leading off third and scored on Reddick's double.
The Rockies scored in the fourth on doubles by Ben Paulsen and Nick Hundley.