After being waived by the Bills on Tuesday, Benjamin went unclaimed on waivers Wednesday, making him a free agent.
By signing with Kansas City, Benjamin is likely to play for a team that will be in the playoffs. He will become a free agent again after this season.
Buffalo acquired Benjamin last October, sending third- and seventh-round draft picks to the Carolina Panthers in exchange for Benjamin.
Benjamin, a first-round draft pick in 2014, had a big rookie season with the Panthers, when had 73 receptions for 1,008 yards and nine touchdowns.
But he hasn't been the same since tearing his ACL before the start of the 2015.
He had just 23 receptions for 354 yards and one touchdown in 12 games (10 starts) with Buffalo this season, and had just seven receptions for 92 yards in his final four games.
The Chiefs already have a high-powered offense, ranking third in the NFL in total offense and first in scoring at 37.0 points per game.