The Baltimore Orioles traded Velázquez to the Astros in exchange for a player to be named later, Astros general manager James Click said in a statement.
Velázquez, 31, spent the 2019 season with the Red Sox and has about three years of Major League experience. He made 34 appearances for the Red Sox last year, including eight starts.
Velázquez posted a 5.43 ERA last year and owns a career 3.90 ERA in 89 games.
The Orioles acquired Velázquez in March, but he was not on their Opening Day roster, instead on the 60-man player pool.
Houston is desperate for Major League experience in its both is starting lineup and bullpen.
Earlier this week, Andre Scrubb became the ninth rookie to join the Astros' pitching staff this year.
With ace Justin Verlander on the injured list nursing a forearm strain, Cristian Javier is set to make his first career start Wednesday against the Los Angeles Dodgers.
Velázquez will report to the Astros' alternate training site in Corpus Christi to join the team's reserves.