He was not drafted by an MLB team in the 2015 MLB draft, and signed with the Gateway Grizzlies of the independentFrontier League.[2] In 2015, Richards posted a 3.36 ERA in 14 starts for the Grizzlies. During eight starts in 2016, he posted a 3.21 ERA and was among the league leaders in strikeouts.[3]
Miami Marlins
After one and-a-half seasons with the Grizzlies, he was signed by the Miami Marlins in July 2016.[4] He spent 2016 with the Batavia Muckdogs and the Greensboro Grasshoppers, both in Single-A, posting a combined 2–3 record and 2.48 ERA in nine starts (11 appearances).[5] In 2017, he was named the Marlins Minor League Pitcher of the Year after going 12–11 with a 2.53 ERA and 158 strikeouts in 27 games (25 starts) between the Advanced-A Jupiter Hammerheads and the Double-AJacksonville Jumbo Shrimp.[6][7]
On April 2, 2018, Richards was called up by the Miami Marlins to make his first MLB start.[8] He pitched 4+1⁄3 innings, giving up eight hits and five runs (all earned) while striking out five and walking one; he took the loss, as the Marlins were defeated by the Boston Red Sox, 7–3.[9] On April 25, facing Clayton Kershaw and the Los Angeles Dodgers, Richards pitched 4+2⁄3 innings, giving up one hit and striking out 10.[10] Richards finished the 2018 season with a 4–9 record in 25 starts. He struck out 130 batters in 126+1⁄3 innings.
For the 2019 season, Richards began the season in the Marlins rotation. He was moved to the bullpen on July 26 after going 3–12 in 20 starts.
Tampa Bay Rays
On July 31, 2019, Richards was traded to the Tampa Bay Rays (along with Nick Anderson) in exchange for Jesús Sánchez and Ryne Stanek.[11] He made his first start as a Ray on August 18, 2019, against the Detroit Tigers, allowing two runs across three and a half innings in a 5–4 Tampa Bay victory.[12] In 2020 for the Rays, Richards pitched to a bloated 5.91 ERA and 1.72 WHIP in 9 appearances, including four starts.[13] In 2021, Richards had 16 strikeouts in 12 innings for the Rays.
On July 6, 2021, the Brewers traded Richards to the Toronto Blue Jays along with Bowden Francis in exchange for Rowdy Tellez.[15] In 32 games out of the bullpen, he compiled a 4–2 record and 3.31 ERA with 37 strikeouts across 32+2⁄3 innings pitched. Richards made 62 appearances for the Blue Jays in 2022, accumulating a 3–2 record and 5.34 ERA with 82 strikeouts across 64 innings.[16]
On January 13, 2023, Richards signed a one-year, $1.5 million contract with the Blue Jays, avoiding salary arbitration.[17] He appeared in 56 contests for Toronto in 2023, recording a 4.95 ERA with 105 strikeouts over 72+2⁄3 innings of work.[18] Richards pitched in 45 games for the Blue Jays in 2024, posting a 2–1 record and 4.64 ERA with 49 strikeouts in 52+1⁄3 innings pitched.[19]
Minnesota Twins
On July 30, 2024, Richards was traded to the Minnesota Twins in exchange for minor-leaguer Jay Harry.[20][21] In 10 games for Minnesota, he registered a 4.15 ERA with 13 strikeouts across 13 innings of work. Richards was designated for assignment by the Twins on August 27.[22] He cleared waivers and was sent outright to the Triple–A St. Paul Saints on September 2.[23] Richards elected free agency on October 1.[24]