Charles ran for 92 yards and a touchdown. He caught two short touchdown passes from Alex Smith, who had 248 yards passing and three touchdowns.
The Chiefs ended at four games a skid at Arrowhead Stadium dating to last season and sent the Patriots to their worst defeat since losing to San Diego, 41-17, in 2005.
Along with having two passes picked off, one of which was returned for a touchdown, Brady was strip-sacked by Tamba Hali to set up a field goal.
Brady finished 14 of 23 for 159 yards.
Knile Davis finished with 107 yards rushing for Kansas City. Tight end Travis Kelce had eight catches for 93 yards and a touchdown.
With the game out of hand, the Patriots gave rookie quarterback Jimmy Garoppolo a chance to play. He threw a late touchdown pass to Rob Gronkowski to complete the scoring.