Toronto confirmed the deal, adding it received outfielder Nori Aoki and a minor league player will be sent to Toronto as part of the trade.
Shi Davidi of Sportsnet first reported the deal.
Liriano is in the final season of a three-year, $39 million deal he originally signed with the Pittsburgh Pirates in December 2014. Pittsburgh traded him to the Blue Jays last August, and he posted a 2.92 ERA with 52 strikeouts in 49.1 innings to help Toronto reach the postseason for the second straight year.
This season has been a struggle for the 33-year-old. He recorded just one out in his first start of 2017 against the Tampa Bay Rays on April 7, allowing five runs on three hits and four walks. In 18 games overall, the right-hander has a 5.88 ERA with 91 hits allowed, 43 walks and 74 strikeouts in 82.2 innings.
Despite Liriano's poor performance so far this season, he has proved capable of turning things around quickly. He showed that last year after being acquired by the Blue Jays and did it when he first joined the Pirates four years ago.
He posted a 5.34 ERA with the Minnesota Twins and Chicago White Sox in 2012 but then signed with the Pirates, posted a 3.02 ERA in the 2013 regular season and started the NL Wild Card Game against the Cincinnati Reds.
The Astros will hope for another surprise turnaround from Liriano as they look to continue their dominant season atop the American League. Liriano will join a starting rotation that has the fifth-best ERA in baseball (3.97), anchored by Dallas Keuchel and his 1.94 ERA.
For all of Liriano's flaws this season, he remains a pitcher capable of missing bats. If he can avoid giving up as much contact as he has so far, he will be an underrated trade acquisition and significant boost to Houston's pitching staff for the stretch run.