Holmes played college football at Hillsdale College. He played for Hillsdale from 2007 to 2010 and holds the school's all-time record for receiving yardage. During his junior and senior seasons, he also set multiple Hillsdale records with 181 catches, 2,444 yards and 17 touchdowns. After completing his collegiate career, he was invited to play in the Texas vs. The Nation college football all-star game.
Holmes attended James B. Conant High School where he started at wide receiver for only one season. His football coaches were Dave Pendergast and Bill Modelski. He also participated in basketball where he was coached by Tom McCormack and Jeff Stewart. In track and field, he set PR of 6.85 meters in the long jump and 14.06 meters in triple jump. In addition, he was also a member of the 4 × 200m relay (1:29.66).
He moved on to Division II (NCAA) Hillsdale College, where he was coached by Keith Otterbein, and where as a senior he set single-season school records with 104 receptions and over 1,300 receiving yards. He also had 11 touchdowns.
In 2010, he also set a single game school record in the team's first-round playoff game against St. Cloud State University with 16 receptions.
Holmes was twice named ALL-GLIAC and a Division II All-American honorable mention. He was also a member of the track and field team, winning the GLIAC title in the outdoor triple jump at the conference championships in 2006.
Holmes went undrafted in the 2011 NFL Draft due to his small school background, and was signed as an undrafted free agent by the Minnesota Vikings. He was waived by the Vikings on August 29, 2011.
The Dallas Cowboys signed him to their practice squad on September 5, 2011 and promoted him to the active roster on December 9, but did not play in the last 4 games of the season. Holmes was waived by the Cowboys on November 24, 2012. On November 27, the Cowboys re-signed Holmes to their practice squad, as a replacement to Danny Coale, but wasn't re-signed at the end of the season.
Holmes was signed by New England Patriots on January 8, 2013, to the practice squad. He was waived on May 10.
Holmes was claimed off waivers by the Oakland Raiders on May 13, 2013.
On July 27, 2013, Holmes was suspended for the first 4 games of the 2013 season due to violating the league's performance-enhancing drugs policy. After serving his suspension and being reinstated by the National Football League the Oakland Raiders activated him to their roster on October 7, 2013, filling the open roster spot after the release of quarterback Matt Flynn.
On January 7, 2017, Holmes caught his first career postseason touchdown from quarterback Connor Cook in the Raiders' 14–27 wildcard round loss to the Houston Texans.
On March 18, 2017, Holmes signed a three-year, $6.5 million contract with the Buffalo Bills.
On September 10, in the season opening 21–12 victory over the New York Jets, Holmes recorded his first touchdown, a one-yard pass from quarterback Tyrod Taylor, as a Buffalo Bill.
Holmes' father, Kevin Holmes, played college basketball for DePaul in the 1980s. His younger brother Jason, a former college basketball player at Mississippi Valley State and Morehead State, was signed to a rookie contract by St Kilda of the Australian Football League in October 2013.