Fowler, 27, has compiled 40 homers, 120 doubles and 53 triples over 667 games in a six-career with the Rockies.
Last season the switch-hitter smacked 12 homers and produced 42 RBI, batting .263 in 119 contests for Colorado.
Astros General Manager Jeff Luhnow called Fowler "an outfielder who can spark our offense. Dexter is an exciting player who can help with the bat, with his legs, and with his glove."
In return, the Rockies landed Barnes, who sports a .240 average in two seasons with Houston, including eight home runs and 41 RBI.
Also going to Colorado is the 23-year-old Lyles, a right-hander who went 7-9 with a 5.59 ERA over 27 games (25 starts) with the Astros last season.
McPhee, Cokas 'working on their marriage' after affair
Attkisson leaves CBS News, reportedly over network's 'liberal bias'