Rowley attended South Forsyth High School in Cumming, Georgia, where he set school records in wins, earned run average, and strikeouts. After high school, Rowley was offered college baseball scholarships by Mercer University and the United States Military Academy. He chose the Military Academy over Mercer, as the Army Black Knights offered him a chance to start games, while the Mercer Bears wanted him in the bullpen, working as a relief pitcher. In his first season with Army, he appeared in three games for the Black Knights and posted a 13.00 ERA in nine innings pitched. The following year, Rowley pitched to a 5–4 win–loss record, 4.68 ERA, and 54 strikeouts in 73 total innings. Rowley finished the 2012 campaign with an 11–1 record, which included six complete games and five shutouts, and added a 2.40 earned run average and 80 strikeouts in 97 innings. Following the season, he was named the Patriot League's Pitcher of the Year. In his final season with the Black Knights, Rowley went 9–4 with a 2.67 ERA and 75 strikeouts in 97 innings pitched.
Professional career
Minor leagues and military
Undrafted after graduation, Rowley was invited by the Toronto Blue Jays to play for the Gulf Coast League Blue Jays for the remainder of the 2013 season, after which he would begin his five-year active duty obligation to the United States Army. In nine games played, he pitched to a 4–0 record, 1.10 ERA, and 39 strikeouts in 32 innings. Rowley began his military service assigned to Fort Sill, Oklahoma, and was later assigned to Bulgaria and Romania as a Field Artilleryfire support officer. While assigned to Bulgaria for Operation Atlantic Resolve, first lieutenant Rowley pitched to his company's senior medic to keep his arm in shape. After serving 30 months in the military, Rowley's application for an exception to the remainder of his commitment was approved on January 22, 2016, and he was assigned to Individual Ready Reserve. He played the entire year with the Advanced-ADunedin Blue Jays, and posted a 10–3 win–loss record, 3.49 ERA, and 86 strikeouts in a career-high 123 innings. He was assigned to the Double-ANew Hampshire Fisher Cats to begin the 2017 season, and earned a promotion to the Triple-ABuffalo Bisons on June 19. Rowley initially pitched out of the bullpen for Buffalo, and joined the starting rotation on July 4.
Toronto Blue Jays
On August 12, 2017, Rowley was called-up from Triple-A Buffalo to start against the Pittsburgh Pirates. He pitched 5 innings and allowed a single run on five hits and one walk with three strikeouts, and earned the win in the 7–2 victory. Rowley was outrighted off the 40-man roster on November 20, 2017. On January 24, 2018, the Blue Jays invited him to spring training. Rowley was added to the active roster on July 14, 2018.