Hill was called up by the injury-plagued St. Louis Cardinals in 1989. He started well, but soon went downhill. He finished that season 7-15, but with a decent 3.80 ERA. He wouldn't see another decent season until 1991, going 11-10 with a 3.57 ERA. In November 1991, he was traded to the Montreal Expos for first baseman Andrés Galarraga. It was as a member of these Expos that Hill found his groove.
Hill donned a White Sox jersey in only two outings before being released by the team in 2000.
In both 1992 and 1994 Hill won 16 games, going 16-9 with a 2.68 ERA in 1991 and 16-5 with a 3.32 ERA in 1994. He was also an All-Star in 1994, pitching 2 innings in relief and walking one, and finished second in Cy Young voting to Greg Maddux. He then returned to the Cardinals, where he suffered the same fate he endured in his first stint in St. Louis, winning only 6 games, losing 7, and posting a 5.06 ERA. He was then was traded to the Cleveland Indians for minor league prospects David Bell, Rick Heiserman and Pepe McNeal. He did well for the Indians, going 4-1 in the remainder of the regular season and 2-1 in the postseason.
He filed for free agency in the 1995 postseason and was signed by the Texas Rangers, tying for the team lead (along with Bobby Witt) with 16 wins and leading the Rangers to the postseason for the first time. In 1997, however, an injury sent him to the disabled list and greatly affected the rest of his playing career. He also played for the Anaheim Angels after being traded there later in 1997 for Jim Leyritz. He performed poorly over the next two years, going 13-17 and finally being relegated to the bullpen in 1999. He was released in August 2000 but signed by the Chicago White Sox, for whom he promptly gave up eight runs in three innings and was released two weeks later.
He accepted a non-roster invitation from the Tampa Bay Devil Rays in 2001, and appeared in five games for them before being released, ending his major league career.