Minnesota Vikings Holmes was signed as an
undrafted free agent by the
Minnesota Vikings on July 27, 2011, due to his small school background. Holmes was waived on August 29.
Dallas Cowboys On September 5, 2011, Holmes was signed to the
Dallas Cowboys' practice squad. He was promoted to the active roster on December 9, but suffered a hamstring injury and did not play in the last four games of the season. Holmes was waived by the Cowboys on November 24, 2012. However, the Cowboys signed him to their practice squad three days later as a replacement to
Danny Coale, but Holmes was not re-signed at the end of the season.
New England Patriots Holmes was signed by
New England Patriots on January 8, 2013, to the practice squad. He was waived on May 10.
Oakland Raiders Holmes was claimed off waivers by the
Oakland Raiders on May 13, 2013. On July 27, he was suspended for the first four games of the 2013 season due to violating the league's performance-enhancing drugs policy. The Raiders activated Holmes to their roster on October 7, 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' 27–14 wildcard round loss to the
Houston Texans.
Buffalo Bills 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, he recorded his first touchdown as a Bill, a one-yard pass from quarterback
Tyrod Taylor. Holmes was placed on injured reserve on December 26, 2017, with a neck injury. During the 2018 season, Holmes played in over 70% of special team snaps for the Bills. On December 4, 2018, Holmes was released.
Denver Broncos On December 5, 2018, Holmes was claimed off waivers by the
Denver Broncos. On December 28, he was placed on injured reserve. Holmes was released on January 23, 2019. ==NFL career statistics==