On April 30, 2017, the San Francisco 49ers signed Bourne to a three-year, US$1.67 million contract as an undrafted free agent.
[6][7] Throughout training camp, Bourne competed for a roster spot as a backup wide receiver against Aldrick Robinson, Bruce Ellington, DeAndre Smelter, Aaron Burbridge, DeAndre Carter, B. J. Johnson, and Victor Bolden Jr.[8] Head coach Kyle Shanahan named Bourne the fifth wide receiver on the depth chart to begin the regular season, behind Marquise Goodwin, Pierre Garçon, Aldrick Robinson, and Trent Taylor.
Head coach Kyle Shanahan named him the fifth wide receiver on the depth chart to start the 2018 NFL season, behind Pierre Garçon, Marquise Goodwin, Trent Taylor, and Dante Pettis.
[14] On September 16, 2018, Bourne caught his first career touchdown reception on a four-yard pass by quarterback Jimmy Garoppolo during a 30–27 victory against the Detroit Lions.
[15] On October 28, 2018, Bourne made his first career start after Pierre Garçon aggravated a knee injury.
[21] He had a quiet day with a single reception for six yards in the 37–20 victory over the Green Bay Packers in the NFC Championship.
[30] During Week 6 against the Dallas Cowboys, Bourne had a 75-yard touchdown on his only reception of the game, as the Patriots lost 35–29 in overtime.
[31] In Week 7 against the New York Jets, Bourne threw his first career touchdown pass, a 25 yarder to receiver Nelson Agholor.
In Week 12 against the Tennessee Titans, Bourne had five receptions for 61 yards and two touchdowns, including a 41 yarder, and helped the Patriots win 36-13, the team's sixth straight victory.
On December 5, he garnered attention for criticizing team decisions and play-calling after a loss to the Buffalo Bills.