Haley was selected by the Cleveland Indians in the 46th round of the 2010 MLB Draft out of Sierra College, where he had been 4-5 with a 4.88 ERA,[1] but did not sign.
Haley debuted professionally with the Class A Short Season Lowell Spinners in 2012, as he finished with a 0–1 record and a 1.89 ERA in 13 appearances (12 starts), including 33 strikeouts and 16 walks in 33⅓ innings.
He went 7–4 with a 2.82 ERA and 74 strikeouts in 19 games (11 starts), giving up just 23 walks in 92⅔ innings (2.7 W/9), a significant improvement over his previous season at Greenville (5.3 W/9).
He also made the Carolina League All-Star team earlier in the season before being promoted to the Double-A Portland Sea Dogs on July 29.
[2][6] Haley pitched his best outing of the year on August 13, allowing just one hit of shutout ball in seven innings, while striking out six and walking none.
[2] Overall, Haley was 13–10 in the season and led all Red Sox minor league pitchers in ERA (3.01) and WHIP (1.12), while ending second in wins and innings (146⅔) and third in strikeouts (126).
[11] In 2017, Haley made the Twins' Opening Day roster,[12] and had his major league debut on April 5, retiring the side in order in the ninth inning of a win over the Kansas City Royals.
[13] On April 13, Haley recorded his first MLB save, pitching 3+1⁄3 innings of one-run relief in a win over the Detroit Tigers.
[18] With the 2017 Minnesota Twins, Haley appeared in 10 games, all in relief, with a 6.00 ERA, 14 strikeouts, six walks, and one save in 18 innings pitched; he did not have a win or a loss.
[20] Haley was again added to Boston's active roster on June 26, when Steven Wright was placed on the disabled list.