Yates played football in youth-league football. He continued playing for his 9th grade high school team and into the 2003 season until moving his focus to basketball. Yates returned in 2005, where he played quarterback and punter for Pope High School, in the north Atlanta suburb of Marietta, where he earned Atlanta Metro First-Team All-Area honors.
Yates was selected with the 152nd pick (fifth round) of the 2011 NFL Draft by the Houston Texans. He first saw action in a November 27, 2011 game against the Jacksonville Jaguars when quarterback Matt Leinart left the game with a collarbone injury. Yates made his first career start in the next game against the Atlanta Falcons and also became the first ever former University of North Carolina quarterback to start an NFL game. Yates started his second game on December 11 against the Cincinnati Bengals. Yates completed 26-of-44 passes for 300 yards. He threw two touchdowns and one interception and led the Texans to their tenth win, clinching a playoff spot for the first time in franchise history. For his performance in the Bengals game he was named the Pepsi NFL Rookie of the Week. On January 7, 2012, Yates led the Texans to their first ever playoff win with the score of 31–10 over the Cincinnati Bengals (the same team Yates and the Texans beat to clinch their first ever playoff berth), becoming the fifth rookie quarterback to win a playoff game. The game was the first playoff game in NFL history that had two rookie quarterbacks starting for their respective teams (Andy Dalton was the other rookie). The Texans eventually lost to the Baltimore Ravens in the divisional round.
Yates began the 2012 season second on the depth chart, behind quarterback Matt Schaub, but ahead of John Beck and undrafted rookie Case Keenum. Yates replaced Schaub against the St. Louis Rams during the 2013 season, throwing two interceptions, one of which was returned for a touchdown. Yates ended 2013 completing 15 of 22 passes for 113 yards and 2 interceptions, while also being third on the depth chart behind Schaub and Keenum.
Yates was signed by the Texans on October 27, 2015, after the team cut quarterback Ryan Mallett.  He was signed to serve as a backup to Brian Hoyer. After Hoyer went out with an injury during a November 16th game against Cincinnati, Yates replaced him in the third quarter, and eventually won the game 10-6 over the Bengals and ended their search for an undefeated season. In the game, Yates completed 5 of 11 passes for 69 yards and a touchdown.