Singleton's contract includes three club-option years that could increase his payout to $30 million over eight years. When bonuses and awards are included, Singleton can earn a maximum of $35 million over the course of the deal. The deal runs from the 2014 through 2018 seasons.
Singleton, 22, broke into professional ball with the Phillies before going to Houston in July 2011 in a five-player trade that sent outfielder Hunter Pence to Philadelphia.
He was hitting .267 with 14 home runs and a .544 slugging percentage in 54 games with Oklahoma City this season.
Singleton served a 50-game suspension to begin the 2013 season for a second failed drug test. In spring training, he made news by sharing his struggles with marijuana and alcohol in an interview with The Associated Press. The Astros were initially caught off-guard by the interview but quickly issued a statement of support for Singleton.
"It was a relief and he got it off his chest, and he put it behind him and now he can focus on baseball," Astros general manager Jeff Luhnow said in an interview with ESPN.com in March. "That's what we need him to do -- focus on the baseball side.
"My reaction at first was, 'Oh my goodness,' but after I reflected on it, it didn't take long for me to realize this is a good thing," Luhnow said in spring training. "We're providing him with all the resources that he needs. As anybody who's gone through addiction knows, you're never out of the woods. You have to stay completely on top of it. We have experts working with him. We're making sure he knows he has the support, and we're encouraging him to utilize it."
Singleton joins outfielder George Springer as the latest piece from a deep and talented farm system to graduate to Houston's major league roster. Springer, who was promoted from the minors in April, hit .294 with 10 home runs and 25 RBIs to lead the Astros to a 15-14 May after they had posted a 9-19 record in April.
Singleton immediately upgrades a Houston first-base contingent that ranks last in the majors with a .181 batting average and a .561 OPS. Jesus Guzman and Marc Krauss have logged the bulk of the at-bats at first base for manager Bo Porter in Houston.
ESPN's Keith Law ranked Singleton as the No. 78 minor league prospect in baseball before this season -- down from No. 32 in 2013.
Yahoo! Sports had earlier reported Singleton's contract with the Astros.