Buffalo is sending four picks to Minnesota -- a first, fifth and sixth in 2020 and a fourth in 2021 -- while also getting a 2020 seventh-rounder back from the Vikings.
Diggs had 63 catches for 1,130 yards and six touchdowns in 2019, coming off a career-best 102 catches in 2018.
Diggs, 26, is in the second year of a five-year, $72 million contract.
Fox Sports was first to report Diggs is heading to Buffalo.
The transaction improved the Bills' odds to win the Super Bowl from 35-1 to 28-1. It also dropped the Vikings' odds to win the NFC (12-1 to 14-1) and the Super Bowl (28-1 to 30-1).
Diggs showed signs of visible frustration last season, which boiled over following a Week 4 loss at Chicago. The wide receiver was fined $200,000 for unexcused absences from practices and team meetings the next week. The star wide receiver said then that he hadn't "communicated anything" in regard to requesting a trade but that there was "truth to all rumors" amid the assumption that he was unhappy with the state of the Vikings' offense, which had shifted toward a run-first approach, and his role within it.
Eventually, things appeared to settle in Minnesota, and Diggs recorded his second straight 1,000-yard receiving season. The Vikings remained adamant early this offseason that they were not interested in trading Diggs, who helped Kirk Cousins reach a 111.8 passer rating when targeting the wide receiver in 2019.
As the offseason wore on into February, Diggs was at the center of a self-inflicted social media controversy when a bevy of cryptic tweets and archived and/or deleted Instagram posts of all the receiver's Vikings photos created speculation he wanted to be traded.
Still, behind closed doors, sources said the Vikings were not willing to unload Diggs simply because the wide receiver was unhappy. At 26 years old in the midst of his prime, Diggs was not only one of the league's elite receivers, he was a major part of the fabric of Minnesota's offense.
At the NFL combine, Vikings general manager Rick Spielman dispelled the notion that the team was attempting to move on from Diggs.
"He's not only a major part of our offense and a major part of our organization winning games, but he also does a lot of things for this organization off the field," Spielman said. "There's no reason -- the rumors or whatever you're talking about -- to anticipate that Stefon Diggs is not going to be a Minnesota Viking. When you have some of the offensive talent that we have, with him and [Adam Thielen] together, with [tight ends Kyle Rudolph and Irv Smith Jr.], with [running backs Dalvin Cook and Alexander Mattison], we have a pretty good support cast around our quarterback."
Diggs created further speculation on Monday hours after Cousins signed a two-year contract extension. The receiver tweeted, "it's time for a new beginning," and responded to one user that "Somethings going to happen."
The first-round pick Minnesota received from Buffalo in return for Diggs sits at No. 22 overall, three spots ahead of where Minnesota is set to draft in the first round.
The Vikings, who ended Monday $7 million under the cap after making a bevy of moves, will incur $9 million in dead money but save $5.5 million against the cap with the trade.
ESPN's Courtney Cronin contributed to this report.