Hagans played college football for the University of Virginia. He was originally recruited by Indiana University to replace Antwaan Randle El. However, Hagans enrolled for a year at Fork Union Military Academy after graduation from Hampton and subsequently decided to enroll at Virginia in the fall of 2001. He redshirted his true freshman year. Hagans replaced incumbent quarterback Matt Schaub during the first game of the 2002 season against Colorado State University. Hagans was named the starter for the following game against Florida State University but was replaced by Schaub, who went on to a breakout season. Hagans was primarily a wide receiver and kick returner for the remainder of 2002 and 2003, though he continued to receive limited playing time at quarterback. Hagans became the starting quarterback for the 2004 season after Schaub's graduation.
In 2004, the Cavaliers started 5-0 and attained a #6 national ranking before losing at Florida State and finishing with a final record of 8-4 after losing to Fresno State in the MPC Computers Bowl. His most notable game at the University of Virginia was a 26–21 victory over #4 Florida State in 2005. In his final game, Hagans led the Cavaliers to a come from behind victory over Minnesota in the Music City Bowl to cap a 7–5 season.
Hagans was selected by the St. Louis Rams in the fifth round (144th overall) of the 2006 NFL Draft.[3] In his rookie season he played in four games making eight receptions for 101 yards. Hagans was the emergency quarterback for the Rams.
He was waived by the Rams on August 29, 2008.
Kansas City Chiefs
Hagans was signed to the Kansas City Chiefs practice squad on September 1, 2008. He was then promoted to the 53-man roster and signed to a two-year contract on September 10. He was listed as the Chiefs "Emergency Quarterback" and played at QB for several trick plays against the Raiders. After linebackerWeston Dacus was promoted to the active roster, Hagans was waived on September 26 and re-signed to the practice squad two days later.
He was released from the practice squad on October 22, 2008 after the team signed wide receiverNate Hughes to the practice squad.