As a true freshman, Garnett appeared in 14 games for the Stanford Cardinal, playing both guard positions and fullback. His first career start came against Washington State, as he became the first true freshman to start on the Cardinal's offensive line since Kirk Chambers in 2000.[3] Stanford eventually also started freshmen Kyle Murphy and Andrus Peat on the offensive line. In his sophomore year, Garnett played another 14 games.
In his junior season, Garnett took over as left guard from David Yankey. He started 13 games on an offensive line that ranked 18th nationally in tackles for loss allowed (4.62/game), 42nd in sacks allowed (1.77/game). Garnett won the Outland Trophy and was named a unanimous All-American as a senior in 2015.
The San Francisco 49ers selected Garnett in the first round (28th overall) of the 2016 NFL draft.[5] On July 29, 2016, the San Francisco 49ers signed him to a four-year, US$13 million contract.[6] His father, Scott, had also played for the 49ers.[7] Garnett played in 15 games with 11 starts at guard as a rookie in the 2016 season. On September 2, 2017, he was placed on injured reserve after having knee surgery.[8]
Garnett played in the 2018 season opener but then dislocated his toe missing 6 games afterwards. In practice on November 20, 2018, Garnett broke his thumb which sidelined him for the rest of the season.[9] On May 2, 2019, the 49ers declined the fifth-year option on his contract before being released on August 31, 2019.[10][11]
Detroit Lions
On February 3, 2020, Garnett signed a one-year contract with the Detroit Lions but was waived on August 9, 2020.[12][13]
Washington Football Team
Garnett signed with the Washington Football Team on August 21, 2020.[14] He was waived on September 5, 2020, and was signed to the practice squad the next day.[15] He was elevated to the active roster on September 26 and October 3 for the team's weeks 3 and 4 games against the Cleveland Browns and Baltimore Ravens, and reverted to the practice squad after each game.[16][17] He was promoted to the active roster on October 9, 2020.[18] The team announced his retirement on October 20, 2020.[19]