Brown was signed by the Carolina Panthers after going undrafted in the 2014 NFL draft.[5] On October 5, 2014, Brown recorded the first punt return touchdown for the Panthers since Steve Smith, Sr. in 2003 on a 79-yard touchdown return.[6] In Week 11, against the Atlanta Falcons, Brown recorded his first receiving touchdown as an NFL player.[7] Brown appeared in 13 games and had three starts in 2014. He had 21 receptions for 296 receiving yards and two receiving touchdowns as a rookie.[8]
In Brown's second season, the Panthers finished the season with a franchise-record 15–1 season.[9][10] On the year, Brown had 31 catches for 447 yards and four touchdowns.[11]
In the NFC Championship against the Arizona Cardinals, he had four receptions for 113 receiving yards and one receiving touchdown in the 49–15 victory.[12] On February 7, 2016, Brown was part of the Panthers team that played in Super Bowl 50. In the game, the Panthers fell to the Denver Broncos by a score of 24–10.[13] In the Super Bowl, Brown had four catches for 80 yards, and was the Panthers' leading receiver in the game in terms of total receiving yards.[14]
In the 2016 season, Brown recorded 27 receptions for 276 receiving yards and one receiving touchdown in 16 games, of which he started eight.[15]
Buffalo Bills
On March 12, 2017, Brown signed a one-year contract with the Buffalo Bills.[16] He was released on September 3, 2017.[17] He was re-signed on October 3, 2017, but was released four days later.[18][19]
Denver Broncos
On July 27, 2018, Brown signed with the Denver Broncos.[20] He was waived/injured by the Broncos on August 15, 2018, and was placed on injured reserve.[21]