Ryan Mountcastle and Austin Hays also homered for the Orioles, who have won three straight and six of their last seven games.
Of concern for the Orioles was closer Felix Bautista exiting with two outs and one strike away from ending the game in the ninth with an ailment. Danny Coulombe recorded the last strike on his only pitch for his second save of the season.
Ezequiel Tovar hit a two-run home run in the fifth inning for the Rockies, but they lost their fifth straight game. Colorado has dropped 12 of its last 15.
Rockies starter Kyle Freeland gave up three runs in six innings, with two of those coming on solo home runs. He was in line to pick up victories in back-to-back outings after going since mid-May without a win.
The Rockies turned to Jake Bird for an inning before Brent Suter (4-3) gave up Henderson's 22nd blast of the year.
Orioles starter Cole Irvin was tagged for four runs in six innings, striking out five with one walk. Shintaro Fujinami (6-8) was the winning pitcher, pitching two shutout innings in relief.
Mountcastle's 18th homer of the season opened the scoring in the first inning. The Orioles scored again in the inning on Henderson's sacrifice fly.
Colorado scored one run in each of the third and fourth innings, respectively, to pull even. Elias Diaz drove in a run with a double to make it 2-1 and Alan Trejo had a sacrifice fly top tie the game the next inning.
After Tovar's go-ahead homer in the fifth gave him five homers this month and 15 for the season.
Hays launched his 13th long ball with two outs in the sixth to cut the gap to 4-3.
Diaz and Charlie Blackmon (2-for-3, two runs) both had two hits for Colorado. Mountcastle and Hays joined Henderson with two hits apiece for Baltimore.
—Field Level Media