The deal is worth $3.75 million and could be worth up to $5.5 million if incentives are met, the source said.
Brown's choice came down to the Raiders and Houston Texans, a source told ESPN's Jeremy Fowler.
That depth chart will also include Zay Jones, who on Wednesday agreed to a one-year contract to return, a source confirmed to ESPN. Jones had 14 receptions for 154 yards and a touchdown last season.
The Raiders also agreed to re-sign two other players Wednesday: defensive tackle Johnathan Hankins to a one-year deal, a source confirmed to ESPN, and offensive lineman Denzelle Good to a two-year contract, a source told Fowler.
The Buffalo Bills released Brown earlier this month in a move that cleared $7.93 million in salary-cap space.
Brown, 30, put together a career season for the Bills in 2019, setting career highs with 72 receptions and 1,060 yards while operating as Buffalo's No. 1 receiver.
Those numbers sharply declined in 2020 as injuries limited him to just nine games and the second-lowest reception (33) and yardage (458) totals of his career.
A third-round draft pick of the Cardinals in 2014, Brown has 320 receptions for 4,748 yards and 31 touchdowns in 96 career games for Arizona, the Baltimore Ravens and Buffalo.
The news of Brown's agreement was first reported by NFL reporter Adam Caplan while The Athletic first reported the Jones and Hankins deals.
ESPN's Paul Gutierrez and Marcel Louis-Jacques contributed to this report.