Hill played collegiately at Washington State University. In his last three seasons, he recorded 32 touchdown catches, breaking the school career-record of 22 set by Hugh Campbell, and tying for second on Pac-10's all-time list. His 2,704 career receiving yards broke Campbell’s former school career-record of 2,452, and his 148 career receptions rank second in school history behind Campbell’s 176. He majored in Sociology.
Professional career
San Francisco 49ers
Hill was selected in the third round of the 2007 NFL Draft by the San Francisco 49ers, his hometown team. At the 2007 NFL Combine, Hill ran a 4.32 in the 40-yard dash, making him the second-fastest receiver in the draft behind Yamon Figurs. Hill played sparingly in his rookie year with the 49ers, appearing in only five games due to lingering hamstring and groin injuries. He finished the season with one reception for six yards and four special teams tackles. In 2008, Hill came on strong in the second half of the season when Shaun Hill replaced J. T. O'Sullivan as the 49ers starting quarterback. He finished the season with 30 catches for 317 yards and two touchdowns. Hill again played sparingly in 2009, being inactive for most of the first half of the season. His best game was in Week 10 against the Tennessee Titans, when he caught 4 passes for 50 yards and two touchdowns. He finished the season with 9 catches for 90 yards and two touchdowns. After the 2010 preseason Hill was one of the players to be cut during final cuts. On September 14, Hill was re-signed by the 49ers due to injured Ted Ginn, Jr.. Hill was released by the team on November 16.
Jacksonville Jaguars
On November 17, 2010, he was claimed off waivers by the Jacksonville Jaguars. The Jaguars waived Hill on November 30, 2011, despite him being their second leading receiver.
Denver Broncos
Hill signed with the Denver Broncos on February 15, 2012. He was released by the team on August 31, 2012.
Hill was signed by the New York Jets on October 3, 2012 after Santonio Holmes was placed on injured reserve due to a Lisfranc injury. He was released on October 27, 2012, to make room for Hayden Smith's call-up from the practice squad. On November 6, 2012, he was re-signed by the Jets. Hill was waived on November 20, 2012 with a non-football injury designation, a claim which Hill disputes.