In 2018, Garvin tallied 60 tackles, 17 tackles for loss, 5.5 sacks, two fumble recoveries, five pass breakups, and a touchdown on a fumble return in 13 starts for the University of Miami. During his junior season, his production declined due to the emergence of defensive end Gregory Rousseau. Garvin had 26 tackles for loss and 10.5 sacks in his sophomore and junior seasons at Miami. In the regular season finale of his senior year against Duke, Garvin tallied a game-high 10 tackles, two sacks, 3 1/2 tackles for loss and a forced fumble.
After his junior season, he decided to forgo his senior season and enter the 2020 NFL draft.
Garvin was selected by the Green Bay Packers in the seventh round with the 242nd overall pick in the 2020 NFL draft. He was signed on May 26, 2020.
On November 24, 2021, Garvin was placed on reserve/COVID-19 list. He was activated on December 4.
On July 28, 2023, Garvin was released by the Packers.
Birmingham Stallions
Garvin signed with the Birmingham Stallions of the UFL on March 14, 2024. His contract was terminated on August 8.
San Francisco 49ers
On August 9, 2024, Garvin signed with the San Francisco 49ers. He was waived on August 27, and re-signed to the practice squad. He was released on September 11. Garvin was signed to the practice squad on October 2 and released again on October 24. On November 20, Garvin was re-signed to the practice squad.
Garvin signed a reserve/future contract with San Francisco on January 6, 2025. On August 26, Garvin was released by the 49ers as a part of final roster cuts.
Chicago Bears
On October 29, 2025, Garvin signed with the Chicago Bears' practice squad. On January 20, 2026, he signed a reserve/futures contract with Chicago.
Garvin was placed on injured reserve on August 4, 2026. He was waived from injured reserve on October 12.