The extension will raise Charles' pay $5 million per year over the next two years.
Charles, 27, was set to make $3.9 million on his old deal.
Rapoport reported Tuesday that Charles, believing he deserved a higher salary, was considering holding out from training camp.
A third-round pick out of Texas in 2008, Charles is a three-time Pro Bowl pick and twice earned first-team All-Pro honors.
He rushed for 1,287 yards and led the NFL with 12 rushing touchdowns last season as the Chiefs went 11-5 before falling to the Colts in the Wild Card round of the playoffs.
- Chris Johnson