Savage enrolled at Rutgers University in 2009 under head coach Greg Schiano. After Rutgers opened the season with a 45–17 loss to Cincinnati, he was named the starting quarterback. He led the team to a 9-4 record. During his freshman year at Rutgers, Savage passed for 2,211 yards and 14 touchdowns, while throwing only seven interceptions. In arguably his best game of the year, he completed 14-of-27 passes for a season-high 294 yards and two touchdowns against the University of Central Florida in a 45–24 victory in the 2009 St. Petersburg Bowl. He was named on the All-American Freshman Team by the Football Writers Association of America. In the 2010 season, Savage threw for 521 passing yards, two touchdowns, and three interceptions. Early in the season, he was sidelined by an injury to his hand and replaced with freshman quarterback Chas Dodd. Dodd remained the starting quarterback based on his performance against Connecticut in his first ever start. On January 8, 2011, Savage announced he would transfer from Rutgers University. Rutgers granted Savage a conditional release. In February 2011, he announced that he was transferring to Arizona. He missed the 2011 season due to NCAA transfer rules but was eligible to play in 2012. Late in 2011, Savage announced his departure from Arizona, a move which followed the announcement that Arizona had hired Rich Rodriguez as head coach. In June, Savage announced via his Twitter page that he was transferring to Pittsburgh where he redshirted in 2012. Savage initially wanted to play at Rutgers again; however a hardship waiver was denied by the NCAA. On August 14, 2013, Pitt head coach Paul Chryst officially named Savage the starting quarterback for the 2013 season opener against Florida State. On September 21, against Duke, he threw for 424 yards and six touchdowns in the 58–55 victory. For the season, he passed for 2,958 yards, 21 touchdowns, and nine interceptions. Savage majored in communications.
College statistics
Professional career
Houston Texans
2014 season: Rookie year
In the fourth round of the 2014 NFL Draft, Savage was drafted 135th overall by the Houston Texans. He was the seventh quarterback to be selected that year. On May 15, 2014, he signed a four-year contract with the team. On November 30, against the Tennessee Titans, he appeared in a gamefor the first time and had two kneel down plays. On December 14, he had his first significant playing time after Ryan Fitzpatrick broke his leg against the Indianapolis Colts. He finished the 17–10 loss with 127 passing yards and an interception.
2015 season
On September 5, 2015, Savage was placed on injured reserve by the Texans with a shoulder injury. Due to his injury, Savage saw no playing time in 2015.
2016 season
On December 18, 2016, Savage entered the game in the second quarter against the Jacksonville Jaguars in relief of Brock Osweiler, who was benched after throwing for 48 yards and back-to-back first-half interceptions. Savage brought the Texans back from a 13–0 deficit and completed 23-of-36 pass attempts for 260 passing yards as he led the Texans to a 21–20 comeback win. Savage was named the starting quarterback for the Week 16 game against the Cincinnati Bengals. He completed 18-of-29 passes for 176 yards in the 12–10 win against the Bengals, clinching the AFC South title for the Texans. During a Week 17 24-17 loss against the Tennessee Titans, Savage left the game in the second quarter with an apparent concussion but later returned to the game for one play; which was a kneel down at the end of the second quarter. During halftime, he was re-evaluated for a concussion and ruled out for the rest of the game. Due to Savage's injury, Osweiler started the team's Wild Card Round playoff win against the Oakland Raiders. Shortly after the game, head coach Bill O'Brien announced that Osweiler would remain the team's starter for the Divisional round playoff game. Savage then cleared concussion protocol and was Osweiler's backup for the Divisional round playoff game against the New England Patriots, which the Texans lost by a score of 33-16.
2017 season
In 2017, Savage was competing for the Texans' starting job after the team drafted Deshaun Watson in the first round. After a strong preseason, Savage was named the starter to begin the 2017 season. He started the Week 1 game against the Jacksonville Jaguars, but was benched at halftime in favor of Watson. Savage completed 7-of-13 passes for 62 yards, was sacked six times and fumbled twice, including one that was returned for a touchdown by defensive endDante Fowler Jr., making the score 19-0 at halftime. The Texans lost by a score of 29–7. Watson then started the next six games for the Texans. On November 2, Watson tore his ACL during practice, ending his season. This put Savage in line to be the starter. Savage then started the team's Week 9 game against the Indianapolis Colts, completing 19-of-44 passes for 219 yards and his first NFL touchdown, a 34-yard pass to wide receiver DeAndre Hopkins, in the 20–14 loss. In Week 11, Savage had his first 2 touchdown game in a 31–21 victory over the Arizona Cardinals. He finished the game with 230 passing yards. During Week 13 against the Tennessee Titans, Savage finished with a career-high 365 passing yards, a touchdown, and an interception as the Texans lost 13-24. During Week 14 against the San Francisco 49ers, Savage left the game late in the second quarter after suffering a concussion. He was placed on injured reserve on December 23, 2017. During the process, the Texans were suspected to have violated the concussion protocol policy, but were not disciplined. Overall, he finished the 2017 season with 1,412 passing yards, five passing touchdowns, and six interceptions in eight games.
On March 16, 2018, Savage signed a one-year, $1.5 million contract with the New Orleans Saints. On September 1, 2018, Savage was released by the Saints after Teddy Bridgewater was named the backup quarterback.
San Francisco 49ers
On October 16, 2018, Savage signed with the San Francisco 49ers. He was released by the team on November 1, 2018, but was re-signed the next day. He was waived again on November 24, 2018.
Cincinnati Bengals
On November 26, 2018, Savage was claimed off waivers by the Cincinnati Bengals.