"Emmanuel had issues and we had issues, so that's why it was (a) good time to go in different directions," Broncos general manager John Elway said after finalizing the deal, according to Nicki Jhabvala of The Athletic.
Sanders posted 30 receptions for 367 yards and two touchdowns over seven appearances this season. The 32-year-old is scheduled to hit free agency after the season.
While departing the Broncos' facility, Sanders told reporters it's "hard" to leave. In September, though, he said the struggling Broncos were "living in a world of suck," seemingly indicating he'd be open to a trade.
"Times are rough around here. Obviously, the past three years - it's been tough. Trying to get it right. We sit at 0-3, living in a world of suck," he said at the time. "Football is still fun, but not as much fun when you're losing ... "
San Francisco cemented itself as a buyer in the trade market by winning its sixth straight game to begin the season without a legitimate No. 1 wide receiver. Sanders could fill that role while playing primarily in the slot.
The Niners pulled the trigger on the Sanders deal after being outbid by the New England Patriots for Mohamed Sanu, sources told The MMQB's Albert Breer. Sanu fetched the Atlanta Falcons a second-round pick.