Garrett played college basketball for the St. John's Red Storm before pursuing a baseball career fully.
[5] Heading into college, Garrett was a four-star basketball recruit, ranked 68th in the country, and the 21st best small forward.
[3][6] Sources: Garrett was ruled ineligible to play for the college basketball team for the fall semester of his freshman year, in the 2011–12 season, due to academic reasons.
[10] After the basketball season, Garrett played baseball for the Arizona Reds of the Rookie-level Arizona League and the Billings Mustangs of the Rookie-level Pioneer League, pitching to a 4.05 earned run average (ERA) with 18 strikeouts and 13 walks in 20 innings pitched.
[12] Garrett began the 2013 baseball season with Billings, but was promoted to the Dayton Dragons of the Single–A Midwest League in July.
[1] In August 2014, Garrett decided to quit basketball and withdraw from Cal-State Northridge in order to focus on baseball.
[15] He began the 2015 season with the Daytona Tortugas of the High–A Florida State League (FSL),[16] and was chosen to represent the Reds at the 2015 All-Star Futures Game.
[17] Garrett finished the 2015 season with a 2.44 ERA and 133 strikeouts for Daytona, and with Jacob Faria, was named the Co-FSL Pitcher of the Year.
[27] In an April 7, 2019, game against the Pittsburgh Pirates, Garrett was ejected after his role in a bench clearing incident involving Chris Archer, Derek Dietrich, Yasiel Puig, David Bell, Keone Kela, and Felipe Vázquez.
Garrett was ejected along with Puig, Archer, Francisco Cervelli, Kyle Crick, and Trevor Williams.
[30] On March 16, 2022, the Reds traded Garrett to the Kansas City Royals in exchange for Mike Minor.
On January 13, 2023, Garrett agreed to a one-year, $2.65 million contract with the Royals, avoiding salary arbitration.
On July 9, he was designated for assignment by Kansas City after Ryan Yarbrough was activated from the injured list.